上传半个文件?

时间:2012-06-21 04:28:22

标签: php javascript

是否可以上传文件的特定部分而不是整个文件?比如说,我只想上传文件的前100个字节,或者文件的其余部分给出偏移100个字节?

3 个答案:

答案 0 :(得分:2)

在更现代的浏览器中,拥有正确的权限,是的。您需要浏览器来支持文件流读取。这里有一个教程:http://www.html5rocks.com/en/tutorials/file/dndfiles/

打开文件,找到你想要的块和通过AJAX的POST(例如用jQuery)。

您可能会发现以块的形式同步上传并将服务器端(例如,使用会话)拼接在一起更容易 - 这样您就可以对上传进度提供反馈。

不确定旧浏览器的方法,或者用户阻止它的方法 - 因此您可能更好地上传整个文件(使用FILE帖子)并剥离您需要服务器端的位。更多上传,但更好地支持每个人。


编辑 - 其他人刚刚发布了一个关于此问题的问题:https://github.com/blueimp/jQuery-File-Upload - 它本身似乎不支持它,但它也可以通过一些摆弄来做你想做的事情?不过,你仍然需要处理后备。

答案 1 :(得分:1)

是的,有可能。您可以使用带有 BlobApi 的javascript FileApi 上传文件的任何部分。请注意,这是一个HTML5功能。

如果您想调查此功能,可以查看jQuery File Upload Plugin

答案 2 :(得分:0)

您可以使用文件api的slice方法获取半文件。

var midpt=Math.round(file.size/2);
var halfFile=file.slice(0,midpt); //specify start and end positions