2011-07-24 3 views
4

Je travaille dans un petit projet qui traite du téléchargement de fichiers multiples.asp.net téléchargements multiples avec plusieurs contrôle fileupload

à l'utilisateur ont un début de contrôle de fileupload et une petite image appeléefileuploadadder.

chaque fois utilisateur clique sur fileuploadadder, un clone du premier fileupload contrôle ajouté à la page avec jquery. les ids des contrôles fileupload sont uniqe. comme fichier1, fichier2, ...

maintenant, je veux que lorsque l'utilisateur clique sur un bouton à la fin de la page asp.net télécharge les fichiers sélectionnés.

TNX

Répondre

4

Voici un exemple:

<%@ Page Language="C#" %> 
<%@ Import Namespace="System.IO" %> 
<script type="text/c#" runat="server"> 
    protected void BtnUpload_Click(object sender, EventArgs e) 
    { 
     if (Request.Files != null) 
     { 
      foreach (string file in Request.Files) 
      { 
       var uploadedFile = Request.Files[file]; 
       if (uploadedFile.ContentLength > 0) 
       { 
        var appData = Server.MapPath("~/app_data"); 
        var fileName = Path.GetFileName(uploadedFile.FileName); 
        uploadedFile.SaveAs(Path.Combine(appData, fileName)); 
       } 
      } 
     } 
    } 
</script> 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form id="Form1" runat="server" enctype="multipart/form-data"> 
     <a href="#" id="add">Add file</a> 
     <div id="files"></div> 
     <asp:LinkButton ID="BtnUpload" runat="server" Text="Upload" OnClick="BtnUpload_Click" /> 
    </form> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $('#add').click(function() { 
      $('#files').append($('<input/>', { 
       type: 'file', 
       name: 'file' + new Date().getTime() 
      })); 
      return false; 
     }); 
    </script> 
</body> 
</html> 
+0

dossier App_data ne doit pas être utilisé pour télécharger ces fichiers, car il est un dossier spécial réservé à des données telles que les fichiers de base de données. –

+0

@Muhammad Akhtar, c'est juste un exemple. Et il n'y a rien de mal à utiliser le dossier 'App_Data' pour stocker les fichiers téléchargés comme indiqué par Phil Haack: http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx. Il n'est pas réservé exclusivement à la base de données. –

+0

hmm, mais j'ai un problème en utilisant ce dossier avant il y a 2 ans quand je travaillais. J'ai posté le problème sur StackOverflow. S'il vous plaît vérifier cela http://stackoverflow.com/questions/1519790/images-that-are-in-app-data-folder-not-shown-in-browser –

Questions connexes