3

我正在尝试使用上传多个文件

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

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

我正在努力

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

4

2 回答 2

13

您正在尝试迭代一个文件而不是集合。

改变

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

}

编辑- 根据评论更改为 for 循环

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

  }
于 2013-01-15T23:06:59.770 回答
0

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

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

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

无论哪种方式,这都很棒

于 2015-03-24T02:04:31.410 回答