Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET中使用HTML5多文件上载_C#_Asp.net_Html_File Upload_File Io - Fatal编程技术网

C# 在ASP.NET中使用HTML5多文件上载

C# 在ASP.NET中使用HTML5多文件上载,c#,asp.net,html,file-upload,file-io,C#,Asp.net,Html,File Upload,File Io,我正在尝试使用上载多个文件 (是的,我知道它对IE不起作用)。但我的问题是,在代码中,我应该做什么来迭代每个文件并上传它 我正在努力 foreach(HttpPostedFile file in Request.Files["testUpload"]){ } 但我明白了 foreach statement cannot operate on variables of type 'System.Web.HttpPostedFile' because 'System.Web.HttpPoste

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

(是的,我知道它对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”
做些什么:


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

您试图对一个文件而不是集合进行迭代

改变

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

  }
for(int i=0;i0){
//在这里保存代码
}

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

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

for(int i=0;i0){
//在这里保存代码
}

}
Hmm,我在
foreach
行中遇到这个错误:
无法将'System.String'类型的对象强制转换为'System.Web.HttpPostedFileBase'。
编辑完成后,它工作了。但是当我上传文件时,我只上传了一个文件!我尝试输出上传的内容,并为3个不同的文件获取此信息,其中一个是
Koala.jpg
Koala.jpg上传了!Koala.jpg上传了!Koala.jpg上传了!
这告诉我有3个文件被选中。你在哪里输出值?我的机器上运行了示例,代码在Chrome中按预期工作。同时查看调试器中的Request.files对象以查看其中包含的内容。这可能会给你一些提示一些关于代码失败位置的指针I'v尝试调试它。发现
AllKeys
属性包含3个以
input
标记id命名的文件,该标记id是
testUpload
!为什么会发生这种情况?!foreach按名称在集合上迭代。在这种情况下,即使文件中有三项colleAction每个文件项的名称都是testUpload,因为所有三个文件都是从同一个名为testUpload的输入元素发布的。如果有三个不同名称的输入元素,则foreach循环会工作,因为文件名值会不同
for (int i = 0; i < Request.Files.Count; i++)
{
    HttpPostedFileBase file = Request.Files[i];
    if(file .ContentLength >0){
    //saving code here

  }