使用HTML5和ASP.NET上传多个文件

本文关键字:文件 NET HTML5 ASP 使用 | 更新日期: 2023-09-27 17:53:21

我正在尝试使用

上传多个文件

<input id="testUpload" type="file" multiple="true"/>

(是的,我知道它在IE上不起作用)。但我的问题是,在代码中迭代每个文件并上传它之后,我应该怎么做?

I'm try

foreach(HttpPostedFile file in Request.Files["testUpload"]){
}

但是我得到

foreach statement cannot operate on variables of type 'System.Web.HttpPostedFile' because 'System.Web.HttpPostedFile' does not contain a public definition for 'GetEnumerator'

我知道我可以为multiple = "false"做:

HttpPostedFile file = Request.Files["testUpload"];

然后对该文件执行操作。但如果我选择了多个文件呢?如何使用foreach迭代每一个?

使用HTML5和ASP.NET上传多个文件

您正在尝试遍历一个文件,而不是整个集合。

改变
foreach(HttpPostedFile file in Request.Files["testUpload"]){
}

EDIT -修改为for循环

for (int i = 0; i < Request.Files.Count; i++)
{
    HttpPostedFileBase file = Request.Files[i];
    if(file .ContentLength >0){
    //saving code here
  }

谢谢,谢谢,谢谢。它拯救了我的一天。

然而,我不得不使用HttpPostedFile而不是HttpPostedFileBase。

for (int i = 0; i < Request.Files.Count; i++)
{
    **HttpPostedFile** file = Request.Files[i];
    if(file .ContentLength >0){
    //saving code here
    }
}

不管怎样,这都很好