我一直在寻找一个好的方法,并把头撞在墙上。
在一个文件共享服务项目中,我被指派确定上传大文件的最佳方法。
在 stackoverflow 和其他论坛上搜索了很多问题后,我得到了以下结果:
增加脚本最大执行时间以及允许的最大文件大小
这个案子确实不太合适。每次通过普通宽带连接(1mbps-2mbps)上传文件时几乎都会超时。即使上传完成后执行PHP脚本,仍然不能保证上传不会超时。
分块上传。
虽然我有点明白我应该在这里做什么,但我感到困惑的是,假设正在上传一个 1GB 的文件,我正在以 2MB 的块读取它,但如果上传很慢, php 脚本执行将超时并给出错误。
使用 Java 和 Perl 等其他语言?
使用java或perl处理文件上传真的有效吗?
客户端使用的方法不是这里的问题,因为我们将发布一个客户端 SDK,并且可以在其中实现我们选择的方法。客户端和服务器端的实现都将由我们决定。
根据您的观点,考虑到内存使用效率应该很高,并且可能有很多并发上传,哪种方法应该是最好的方法?
Dropbox 和类似的云存储服务如何处理大文件上传并保持快速上传?
我有一个下拉列表,通过ajax的php文件回显.网站上的用户可以使用此下拉列表搜索他的朋友.我有以下代码(验证未显示):
var textbox = $('#participant-textbox');
$(function(){
textbox.keydown(function(e) {
$.ajax({
type:"POST",
url:"sources/friend_search.php",
data:{value:document.getElementById('participant-textbox').value}
})
.done(function(rtrn) {
$('.invite-participants-dropdown').html(rtrn);
});
if(!DropdownState)
{
dropdown.show();
DropdownState=true;
}
});
});
Run Code Online (Sandbox Code Playgroud)
虽然这样可行,但是ajax却落后了一步.我的意思是:
当我在文本框中键入"a"时,它不会显示任何内容.

当我输入'ab'时,它应显示'abhishek'(我使用LIKE子句进行搜索),但它只搜索%a%,因此显示所有a名字中包含a的朋友.
当我键入'abh'时,它现在应该搜索%abh%,而它搜索%ab%(在前一个请求中应该是这种情况).

我想不出任何其他方式来解释这一点.我在这里错过了什么?