我使用的是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
请帮帮我......欢迎任何建议。
答案 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 ...