我发现对于上传非常大的文件(1GB或更多),HTTP PUT请求是最合适的。
这个解决方案很好,我可以将任意文件上传到服务器。然而我在监视上传进度时遇到了困难。
我已经实现了onprogress回调函数,但是它只会在通过PUT上传文件后被调用一次。
我的JavaScript代码:
var req = createRequest();
req.open("PUT", "PHP/upload_file.php?folder=" + aUploadedFile.upload_folder + "&master_folder=" + settings.strServerSideMasterFolder + "&file_name=" + aUploadedFile.file_name);
req.setRequestHeader("Content-type", "text/plain");
req.onload = function (event)
{
console.log("OnLoad Called: " + aUploadedFile.file_name);
}
req.onprogress = function (event)
{
console.log("OnProgress Called: " + aUploadedFile.file_name);
}
req.send(aUploadedFile.file_object);
- 有什么方法可以监控PUT上传进度呢?
- 我是否应该建立另一个JavaScript AJAX调用,以便监视上传到服务器的文件大小?
- 还有其他可行的解决办法吗?
我使用:
- HTML5
- JavaScript
- PHP
- Apache
我不使用:
- jQuery
谢谢您的帮助。