我允许用户将多个 SVG 文件上传到我的服务器。
<form target="my_iframe" enctype="multipart/form-data">
<input name="file" type="file" multiple>
</form>
<div id="message"></div>
但是,一些用户会想要上传大量文件。文件本身相对较小(<200 kB),但可能有几十个,甚至可能有一百个左右。
上传和处理需要很长时间。如果在上传过程中出现任何问题,我们将不得不重新开始。
我见过有类似问题的网站(例如,Facebook、SmugMug)一次只上传一个文件。
没有插件(Sliverlight、Flash 等)如何让用户选择一个文件,但对每个文件发出不同的请求?我的目标是 IE9+、Chrome 和 Firefox。
就像是
//DOES NOT WORK
$.each($('input').files, function(file, i, files) {
$('input').files = [file]; //obviously flawed, since this is an Array, not a FileList
$('#message').text('Uploading ' + i + ' of ' + files.length);
$('form').submit();
});
(我听说人们说出于安全原因这不起作用,尽管我看不到如果我可以缩短FileList
's 可以做什么利用。)
我想我可以自己使用 XHR 发送多部分编码的数据,但如果这是正确的解决方案,我不明白它是如何工作的,也不明白如何格式化它。
我想这并不少见,但我的搜索结果却出人意料地少。