按键选择上传的文件

时间:2015-01-15 11:14:17

标签: c# asp.net

在ASP.NET应用程序中,我想处理上传的文件。 HttpContext.Current.Request.Files.AllKeys包含以下内容:

[0]File2    
[1]File2    
[2]flTeklif    
[3]flTeklif    
[4]flTeklif    
[5]flTeklif

如何只选择将flTeklif键上传到List<HttpPostedFile>的上传文件?

我试过了:

var uploads = HttpContext.Current.Request.Files.AllKeys
                         .Where(s=>s.stringname == "flTeklif") 

但是只选择键而不是文件。如何选择Files.Where(key == "flTeklif")

3 个答案:

答案 0 :(得分:4)

HttpRequest.FilesHttpFileCollection,其AllKeys property是一个字符串数组。

所以你可以使用AllKeys.Where(s => s == "flTeklif")

到目前为止,对于你的问题的字面解释,这可能就是为什么你因为它没有任何意义而非常重视和近距离投票。

如果您的实际问题是“我如何选择flTeklif作为其键”的文件,请使用:

var files = HttpContext.Current.Request.Files;
var result = new List<HttpPostedFile>();

for (int i = 0; i < files.AllKeys.Count; i++)
{
    if (files.AllKeys[i] == "flTeklif")
    {
        result.Add(files.AllKeys[i]);
    }
}

然后result将包含您感兴趣的文件。

答案 1 :(得分:1)

好的,我理解。可能是

HttpContext.Current.Request.Files.Cast<HttpPostedFile>().Where(c => c.FileName.Contains("flTeklif")).ToList();

答案 2 :(得分:0)

使用 HttpFileCollection.GetKey(Int32) 方法。没有提到 AllKeys 数组顺序与文件 HttpFileCollection 相似。

 int i;
 HttpFileCollection MyFileColl = Request.Files;

 for( i= 0; i< MyFileColl.Count; i++)
 {
    if( MyFileColl.GetKey(i) == "flTeklif")
    {
       //...
    }
 }