我知道我可以使用以下元素同时获取多个文件

<input type="file" multiple id="Image" name="Image" size="40" />


然后在控制器中

 [HttpPost]
 public ViewResult Add(List< HttpPostedFileBase> Image = null)
 {
       ...
 }


但我想单独添加图像或一起添加图像,然后在发布之前先预览每个图像。而且我知道有一些不错的解决方案,例如以下内容,添加新图像不会删除以前的图像

http://jsfiddle.net/2xES5/28/

问题是:


如果上次我将图像加在一起,则只有那些图像是
回发
如果上次我仅添加了一张图像
图片回传了


我的意思是这取决于我上次添加图像的方式?!

我的问题是如何分别添加图像或一起添加图像,然后预览图像,然后再发布回去?

如果能帮助我,那太好了

谢谢

最佳答案

总结:使用多个多个文件输入。

当前的jsfiddle:


一个多文件输入
选择文件
显示文件
再次选择文件
仅上传最新文件


因此,在选择文件后,隐藏多文件输入并添加另一个。

<div id='filecontainer'>
    <input type="file" class="dimmy" id="image-input" multiple />
</div>
<div class="preview-area"></div>


如果您希望“浏览”出现在上一个选择之后,则将预览区域放在第一位。

$(inputLocalFont).hide();
inputLocalFont = $('<input type="file" class="dimmy" multiple />')
    .appendTo("#filecontainer")
    .get(0);
inputLocalFont.addEventListener("change", previewImages, false);


http://jsfiddle.net/9vzhbpgt/1/

我已经使用jquery隐藏+添加元素,然后使用原始js添加事件侦听器。

10-04 16:49
查看更多