MVC如何为每种文件类型上传多个文件

时间:2013-09-03 16:35:11

标签: asp.net-mvc

我有一个视图,其中我有三种不同的文本文件类型/文件输入,例如第一个输入是.json,其余两个类似于.json但用户可以上传的格式不同。对于每种文件类型,有时候用户可以有多个文件,所以目前他们将它们压缩并上传给定文件类型的zip文件,我的代码已经容纳了zip文件。

请求是用户可以为每种文件类型而不是zip选择多个文件,例如,如果他们单击浏览,他们可以为每种文件类型选择两个文件等等。我确实知道asp.net有一个我可以处理的上传限制。

我的问题是文件输入类型只允许用户选择单个文件而不是多个文件。我可以在这个多重场景中使用任何第三方实用程序吗?例如,有许多互联网站点允许您在一次浏览中附加多个文件,并点击例如craigs list upload等。

   <input type="file" name="file" id="file1" style="width: 500px" />

  <input type="file" name="file" id="file2" style="width: 500px" />

  <input type="file" name="file" id="file3" style="width: 500px" />




 [HttpPost]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(RunLogEntry runLogEntry, String ServiceRequest,
                                 string submit, string submit1, string submit2, string submit3, IEnumerable<HttpPostedFileBase> file, String AssayPerformanceIssues1, List<string> Replicates)
    {

2 个答案:

答案 0 :(得分:0)

您可以通过修改ActionResult方法签名来上传多个文件:

public ActionResult Index(IEnumerable<HttpPostedFileBase> files) {}

此处有更多详情: http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx

答案 1 :(得分:0)

我没有意识到使这一切变得简单的任何特定工具。出于我的目的,我只创建一个部分视图,其中input用于单个文件选择器。在主视图中,我使用一个帮助器来渲染一个并使用一个AJAX动作链接供用户点击它将获得部分的另一个实例并添加它在第一个下面做DOM。在这种情况下,用户必须单击“添加新文件”,然后再次单击以实际找到要上载的文件。

我不知道任何方法可以让你在不使用插件的情况下在文件选择器对话框中选择多个文件。