我在页面中使用两个文件上传控件,并将文件保存到提交按钮单击中。
For Single Uplaod -
<asp:FileUpload ID="FileUpload1" class="form-control" runat="server" />
For Multiple Upload -
<asp:FileUpload ID="FileUpload2" multiple="multiple" class="form-control" runat="server" />
在提交按钮中单击我正在使用单个Uplaod的代码
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
多个上传代码的是
HttpFileCollection hfc = Request.Files;
savepath = Server.MapPath(filepath);
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
.....
}}
但HttpFileCollection
同时包含FileUpload1
和FileUplaod2
的文件。如何选择仅FileUplaod2
的文件。
任何人都可以为这个问题提供解决方案。
答案 0 :(得分:1)
请勿使用Request.Files
。它包含FileUpload1
和FileUpload2
中的所有文件。请改用FileUpload2.PostedFiles
。
以下是一个示例用法
protected void uploadFiles_Click(object sender, EventArgs e)
{
if (FileUpload2.HasFiles)
{
foreach (HttpPostedFile uploadedFile in FileUpload2.PostedFiles)
{
uploadedFile.SaveAs(System.IO.Path.Combine(Server.MapPath("~/MyPath/"),
uploadedFile.FileName));
listofuploadedfiles.Text += String.Format("{0}<br />", uploadedFile.FileName);
}
}
}
答案 1 :(得分:-1)
您只能在.net 4.5中使用FileUpload2.PostedFiles,而不能使用以下任何内容。另外,你不会在4.5中使用multiple =“multiple”..你必须使用AllowMultiple =“true”