如何在单个按钮单击中使用两个多文件上载控制文件

时间:2014-09-04 07:16:33

标签: c# asp.net

我在页面中使用两个文件上传控件,并将文件保存到提交按钮单击中。

 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同时包含FileUpload1FileUplaod2的文件。如何选择仅FileUplaod2的文件。

任何人都可以为这个问题提供解决方案。

2 个答案:

答案 0 :(得分:1)

请勿使用Request.Files。它包含FileUpload1FileUpload2中的所有文件。请改用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”