asp:ASP.Net 3.5中的FileUpload无法正常工作

时间:2015-05-13 09:25:45

标签: asp.net .net file-upload

我使用的是asp.net 3.5版本。在一个页面中,我有5个 asp:FileUpload 控件。

我尝试使用以下代码:

string path = Server.MapPath("~/MyFiles/");
string filename = "";
string extension = "";
int fcount = 1;
HttpFileCollection HFC = Request.Files;

for (int c = 0; c < HFC.Count; c++)
{
  HttpPostedFile HPF = HFC[c];
  if (HPF.ContentLength < 2100000)  //2,100,000 bytes (approximately 2 MB)
  {
     extension = System.IO.Path.GetExtension(HPF.FileName);
     filename = "ML" + MyId + fcount + extension;
     HPF.SaveAs(path + "\\" + filename);
  }
  fcount++;
  DBimg = filename + ",";
}

由于它有5个不同的上传控件,我没有得到单个控件的值。我需要将从这些上传控件中单独选择的文件保存到单独的文件夹中。从 HPF 如何获得不同的控件。有什么办法吗?

P.N。 - 在asp.net 3.5文件上传控件中进行多项选择并不提供MyUploader1.PostedFiles而是提供MyUploader1.PostedFile

请帮帮我......欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

如果您要从单个文件上传控件上传多个文件,请将FileUpload.AllowMultiple属性设置为true(这仅适用于.NET 4.5)。这个问题在这个问题中进一步讨论: How to choose multiple files using File Upload Control?

如果您正在查看在单个页面上从多个文件上传控件上传多个文件,则需要从每个单独的上传器中提取文件。例如:

if(firstUploader.HasFile)
{
    HttpPostedFile firstFile = firstUploader.PostedFile;
    firstFile.SaveAs(Server.MapPath("~/MyFiles/FirstUploaderContent/" + firstFile.FileName);
}

if(secondUploader.HasFile)
{
    HttpPostedFile secondFile = secondUploader.PostedFile;
    secondFile.SaveAs(Server.MapPath("~/MyFiles/SecondUploaderContent/" + secondFile.FileName);
}

// Handle further files here ...