Como escolher vários ficheiros usando o controlo de envio de Ficheiros?

Tenho um controlo de envio de ficheiros.Agora clicando nisso, eu quero selecionar vários arquivos.

Como posso fazer isso?

Author: Ohlin, 2013-07-03

11 answers

A FileUpload.AllowMultiple a propriedade em . net 4. 5 e superior permitir-lhe-á o controlo para seleccionar vários ficheiros.

<asp:FileUpload ID="fileImages" AllowMultiple="true" runat="server" />

. net 4 e inferior

 <asp:FileUpload ID="fileImages" Multiple="Multiple" runat="server" />

No post-back, você pode então:

 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
 42
Author: Anand Thangappan, 2014-07-11 14:00:17

Aqui está o exemplo completo de como você pode selecionar e enviar vários arquivos em asp.net a usar o controlo de envio de ficheiros....

Escreva este código .ficheiro 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>
Depois disso, escreve este código .aspx.ficheiro 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;
              }
           }
        }
    }
E aqui está...o seu controlo de envio de vários ficheiros está pronto..tenha um bom dia.
 28
Author: Deepak, 2014-11-19 10:18:11

Passo 1: adicionar

<asp:FileUpload runat="server" id="fileUpload1" Multiple="Multiple">
    </asp:FileUpload>

Passo 2: adicionar

Protected Sub uploadBtn_Click(sender As Object, e As System.EventArgs) Handles uploadBtn.Click
    Dim ImageFiles As HttpFileCollection = Request.Files
    For i As Integer = 0 To ImageFiles.Count - 1
        Dim file As HttpPostedFile = ImageFiles(i)
        file.SaveAs(Server.MapPath("Uploads/") & ImageFiles(i).FileName)
    Next

End Sub
 4
Author: Marsowl, 2015-02-22 09:22:21
        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);
}
 4
Author: Jaydeep Shil, 2015-09-23 04:47:27

Existem outras opções que você pode usar estes controles que têm várias opções de upload e estes controles também têm suporte Ajax

1) Flajxian
2) Valums
3) Subgurim FileUpload

 2
Author: skhurams, 2013-07-03 07:44:24

Padrão.código aspx

<asp:FileUpload runat="server" id="fileUpload1" Multiple="Multiple">
        </asp:FileUpload>
<asp:Button runat="server" Text="Upload Files" id="uploadBtn"/>

Padrão.aspx.vb

Protected Sub uploadBtn_Click(sender As Object, e As System.EventArgs) Handles uploadBtn.Click
    Dim ImageFiles As HttpFileCollection = Request.Files
    For i As Integer = 0 To ImageFiles.Count - 1
    Dim file As HttpPostedFile = ImageFiles(i)
        file.SaveAs(Server.MapPath("Uploads/") & file.FileName) 
    Next       
End Sub
 2
Author: user3342540, 2014-02-23 05:51:13

Para adicionar vários ficheiros use abaixo do Código

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
    .fileUpload{
    width:255px;    
    font-size:11px;
    color:#000000;
    border:solid;
    border-width:1px;
    border-color:#7f9db9;    
    height:17px;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="fileUploadarea"><asp:FileUpload ID="fuPuzzleImage" runat="server" CssClass="fileUpload" /><br /></div><br />
    <div><input style="display:block;" id="btnAddMoreFiles" type="button" value="Add more images" onclick="AddMoreImages();" /><br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Upload" />
        </div>
    </div>
    <script language="javascript" type="text/javascript">
        function AddMoreImages() {
            if (!document.getElementById && !document.createElement)
                return false;
            var fileUploadarea = document.getElementById("fileUploadarea");
            if (!fileUploadarea)
                return false;
            var newLine = document.createElement("br");
            fileUploadarea.appendChild(newLine);
            var newFile = document.createElement("input");
            newFile.type = "file";
            newFile.setAttribute("class", "fileUpload");

            if (!AddMoreImages.lastAssignedId)
                AddMoreImages.lastAssignedId = 100;
            newFile.setAttribute("id", "FileUpload" + AddMoreImages.lastAssignedId);
            newFile.setAttribute("name", "FileUpload" + AddMoreImages.lastAssignedId);
            var div = document.createElement("div");
            div.appendChild(newFile);
            div.setAttribute("id", "div" + AddMoreImages.lastAssignedId);
            fileUploadarea.appendChild(div);
            AddMoreImages.lastAssignedId++;
        }

    </script>
    </form>
</body>
</html>

Código do lado do Servidor:

try
{
    HttpFileCollection hfc = Request.Files;
    for (int i = 0; i < hfc.Count; i++)
    {
        HttpPostedFile hpf = hfc[i];
        if (hpf.ContentLength > 0)
        {                        
            hpf.SaveAs(Server.MapPath("~/uploads/") +System.IO.Path.GetFileName(hpf.FileName);                        
        }
    }
}
catch (Exception)
{
    throw;
}
 1
Author: Sumit Jambhale, 2015-06-02 18:37:29

O FileUpload.Permitir a propriedade multi-exemplo em. Net 4.5 e superior lhe permitirá o controle para selecionar vários arquivos.

Abaixo de 4, 5 como 4, 0 (vs 2010) podemos usar o jquery para carregar vários ficheiros num único controlo, usando 2 Ficheiros js: http://code.jquery.com/jquery-1.8.2.js e http://code.google.com/p/jquery-multifile-plugin/

Na marca de envio de ficheiros aspx, adicionar uma classe semelhante= "multi"

<asp:FileUpload ID="FileUpload1" class="multi" runat="server" />

Se quiser o exemplo de trabalho, vá para ligação telecarregamento exemplo.

 1
Author: Kutty Rajesh Valangai, 2016-02-19 06:13:22

Pode tentar abaixo do Código:

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
        Dim j As Integer = 0
        Dim hfc As HttpFileCollection = Request.Files
        Dim PathName As String
        For i As Integer = 0 To hfc.Count - 1
            Dim hpf As HttpPostedFile = hfc(i)

            If hpf.ContentLength > 0 Then
                hpf.SaveAs(Server.MapPath("~/E:\") & System.IO.Path.GetFileName(hpf.FileName))
                PathName = Server.MapPath(hpf.FileName)

                If j < hfc.Count Then
                    Dim strConnString As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
                    Dim sqlquery As String
                    sqlquery = "Insert_proc"
                    Dim con As New SqlConnection(strConnString)
                    Dim cmd As New SqlCommand(sqlquery, con)

                    cmd.CommandType = CommandType.StoredProcedure

                    cmd.Parameters.Add("@FilePath", SqlDbType.VarChar).Value = PathName
                    j = j + 1

                    Try
                        con.Open()
                        cmd.ExecuteNonQuery()


                    Catch ex As Exception
                        Throw ex
                    Finally
                        con.Close()
                        con.Dispose()

                    End Try
                    If j = hfc.Count Then
                        Exit Sub
                    End If
                End If
            End If
        Next

    Catch generatedExceptionName As Exception

        Throw
    End Try
End Sub
 0
Author: sona, 2013-12-26 05:39:46

Eu apenas me deparo com esta solução brilhantemente simples se você estiver usando. Net 4.5 (não suportado facilmente em versões mais baixas) e você pode usar jQuery para fazer as coisas realmente simples e indolor.

A Enviar vários ficheiros com o jQuery e o manipulador genérico em ASP.Net 4.5

Claro que existe a versão comercial do ASP clássico que pode ser encontrada em ASP Uploader

 0
Author: Tom, 2014-02-13 10:16:26

Porque não usar o controlo de envio flash & javascript?

Http://www.uploadify.com/demos/

 -3
Author: user1662936, 2013-07-03 10:07:54