我正在尝试创建一个AJAX多上传,它将在表单/文件输入中获取所有选定的文件,并通过我的AJAX控制器上传。对于这个过程,我使用了jQuery (1.11.3)和jQuery插件。
除了一个非常烦人的问题之外,一切都正常工作;当用户选择两个文件并输入文件,然后再选择另外几个文件时,前面选择的文件将从"files[]“数组中删除。以下是我的HTML5文件输入:
<input id="multi-upload" type="file" name="files[]" multiple>我的问题基本上是,是否有可能只是附加新选择的文件,而不是覆盖旧的"files[]“。
我试图通过在我的JavaScript中创建一个数组来解决这种情况,这将在文件输入更改时将数组中的新文件推入数组中,但这只会导致接收“blob”错误,因为直接通过AJAX发送文件并不是很好,不幸的是。
因此,我所知道的唯一可行的方法是发送表单数据,并通过我的Controller获取$_FILES参数,这使我回到了上面描述的问题。
我想一种方法是在文件输入改变后立即上传文件,但是由于人们应该能够编辑他们的文件的名称,并且能够取消被上传的文件,这是非常不理想的。
所以我的问题是:是否可以让新文件被附加到文件输入而不是文件输入完全被覆盖,或者是否有其他方法来达到这种目标?
我很抱歉,如果有一个类似的问题隐藏在某处,但我一直未能找到任何答案,自己已经得到了正确的答案。
发布于 2015-06-19 10:30:41
正如我在评论中提到的,您可以在用户每次选择文件时创建一个新的输入.
Jquery示例:
$(document).on('change','input[type="file"][multiple]',function(){
var $this = $(this);
$this.clone().insertAfter($this);
$this.hide();
});当然,您不必使用jQuery,但这只是解释我的意思的最简单的方法。
https://stackoverflow.com/questions/30935744
复制相似问题