2016-02-25 48 views
-3

我有一个列表List<string> img = new List<string>();存储列表中的图像的每个路径一旦文件上传它应img.Add(文件名)的列表,但它显示错误System.ArgumentOutOfRangeException这意味着没有存储在列表中的文件名该列表是空的。有人知道发生了什么事?如何用foreach填充<>使用foreach?

foreach (string s in Request.Files) 
{ 
    HttpPostedFile file = Request.Files[s]; 
    int fileSizeInBytes = file.ContentLength; 
    string fileName = file.FileName;// Request.Headers["X-File-Name"]; 
    string fileExtension = ""; 
    if (!string.IsNullOrEmpty(fileName)) 
    { 
     fileExtension = Path.GetExtension(fileName); 
     string savedFileName = Guid.NewGuid().ToString() + fileExtension; 
     string path = HttpContext.Current.Server.MapPath("~/img/items/"); 
     string filename = path + savedFileName; 
     file.SaveAs(filename); 
     img.Add(filename); 
    } 
} 
+2

串什么代码行是否发生错误?设置一个断点并找出答案。 – Seano666

+0

当我使用列表来分配它与VAR它显示这是错误 –

+0

当你通过代码时,什么是文件的值也看起来像你应该使用for循环,而不是foreach看看看起来是什么类似于你正在尝试做的http://stackoverflow.com/questions/29510007/c-sharp-getting-all-files-in-request-file – MethodMan

回答

2

这是很可疑:foreach (string s in Request.Files)Request.Files[s]; 我猜你不希望指数“Request.Files”(无论是)从“Request.Files”本身

+1

这评论,而不是答案。 –

+0

这无疑与问题有关。也许OP可以告诉我们他正在用Request.Files [s] – Seano666

+0

@EricJ做什么。我试图用问题中提供的信息指出OP的正确方向。在这种情况下,我不可能提供完整的答案,因为“这样做会解决它”,所以我发布了这个答案。很抱歉,如果这是一个错误,我还是个菜鸟SO,所以任何建议都是欢迎的。 –