如何在mvc中预览然后发回多个图像?

时间:2015-05-28 08:00:25

标签: jquery asp.net-mvc

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

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

然后在控制器中

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

但我想在发布之前单独或一起添加图像,然后预览每个图像。我知道有一些很好的解决方案,如下所示添加新图像并删除以前的图像

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

问题是

  1. 如果我最后一次将图像添加到一起,那么只有那些图像是 张贴回来
  2. 如果我上一次只添加了那张图片     图片已贴回
  3. 我的意思是这取决于我最后一次添加图片的方式?!

    我的问题是如何单独或一起添加图像然后预览图像然后发回?

    如果帮助我会很棒

    由于

1 个答案:

答案 0 :(得分:3)

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

当前的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添加事件监听器。