如何使用文件上传控件选择多个文件?

pri*_*kar 31 asp.net file-upload

我有一个文件上传控件.现在点击它,我想选择多个文件.

我怎么能这样做?

Ana*_*pan 47

.NET 4.5及更高版本中FileUpload.AllowMultiple属性将允许您控件选择多个文件.

<asp:FileUpload ID="fileImages" AllowMultiple="true" runat="server" />
Run Code Online (Sandbox Code Playgroud)

.NET 4及更低版本

 <asp:FileUpload ID="fileImages" Multiple="Multiple" runat="server" />
Run Code Online (Sandbox Code Playgroud)

在回发后,您可以:

 Dim flImages As HttpFileCollection = Request.Files                   
 For Each key As String In flImages.Keys
    Dim flfile As HttpPostedFile = flImages(key)
    flfile.SaveAs(yourpath & flfile.FileName)
 Next
Run Code Online (Sandbox Code Playgroud)

  • `for each key as String`循环对我来说不起作用(它反复列出相同的FileName),但使用基于索引的循环`For i = 0 To uploadedFiles.Count - 1`. (6认同)

小智 28

以下是使用文件上传控件如何在asp.net中选择和上传多个文件的完整示例....

在.aspx文件中写这段代码..

<head runat="server">
    <title></title>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<div>
    <input type="file" id="myfile" multiple="multiple" name="myfile" runat="server" size="100" />
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    <br />
    <asp:Label ID="Span1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

之后在.aspx.cs文件中写下这段代码..

   protected void Button1_Click(object sender,EventArgs e) {
          string filepath = Server.MapPath("\\Upload");
          HttpFileCollection uploadedFiles = Request.Files;
          Span1.Text = string.Empty;

          for(int i = 0;i < uploadedFiles.Count;i++) {
              HttpPostedFile userPostedFile = uploadedFiles[i];

              try {
                  if (userPostedFile.ContentLength > 0) {
                     Span1.Text += "<u>File #" + (i + 1) +  "</u><br>";
                     Span1.Text += "File Content Type: " +  userPostedFile.ContentType      + "<br>";
                     Span1.Text += "File Size: " + userPostedFile.ContentLength           + "kb<br>";
                     Span1.Text += "File Name: " + userPostedFile.FileName + "<br>";

                     userPostedFile.SaveAs(filepath + "\\" +    Path.GetFileName(userPostedFile.FileName));                  
                     Span1.Text += "Location where saved: " +   filepath + "\\" +   Path.GetFileName(userPostedFile.FileName) + "<p>";
                  }
              } catch(Exception Ex) {
                  Span1.Text += "Error: <br>" + Ex.Message;
              }
           }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这里,你去......你的多文件上传控件准备就绪......祝你节日愉快.


Jay*_*hil 5

        aspx code

            <asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" />
            <asp:Button ID="btnUpload" Text="Upload" runat="server" OnClick ="UploadMultipleFiles" accept ="image/gif, image/jpeg" />
            <hr />
            <asp:Label ID="lblSuccess" runat="server" ForeColor ="Green" />


    Code Behind:

protected void UploadMultipleFiles(object sender, EventArgs e)
{
     foreach (HttpPostedFile postedFile in FileUpload1.PostedFiles)
     {
          string fileName = Path.GetFileName(postedFile.FileName);
          postedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName);
     }
     lblSuccess.Text = string.Format("{0} files have been uploaded successfully.", FileUpload1.PostedFiles.Count);
}
Run Code Online (Sandbox Code Playgroud)