ASP.Net 3.5 中的 asp:FileUpload 未按预期工作

asp:FileUpload in ASP.Net 3.5 is not working as expected

我正在使用 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 我怎样才能得到不同的 controls.Is 有什么出路吗?

P.N。 - 在 asp.net 3.5 中,用于多选的文件上传控件不提供 MyUploader1.PostedFiles,而是提供 MyUploader1.PostedFile

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

如果您希望从单个文件上传控件上传多个文件,请将 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 ...