2010-01-11 13 views
1

J'ai un code à telecharge un fichier particulier qui est stocké à un emplacement particulier sur le serveur ...télécharger un dossier de serveur hôte local

par exemple j'ai un untitled.bmp de fichier dans le répertoire C: dur de mon serveur et je télécharge à mon localhost en utilisant le code particulier ...

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string filepath = (@"C:\untitled.bmp"); 



     // Create New instance of FileInfo class to get the properties of the file being downloaded 
     FileInfo myfile = new FileInfo(filepath); 

     // Checking if file exists 
     if (myfile.Exists) 
     { 
      // Clear the content of the response 
      Response.ClearContent(); 

      // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header 
      Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name); 

      // Add the file size into the response header 
      Response.AddHeader("Content-Length", myfile.Length.ToString()); 

      // Set the ContentType 
      Response.ContentType = ReturnExtension(myfile.Extension.ToLower()); 

      // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead) 
      Response.TransmitFile(myfile.FullName); 

      // End the response 
      Response.End(); 
     } 
    } 


    private string ReturnExtension(string fileExtension) 
    { 
     switch (fileExtension) 
     { 
      case ".htm": 
      case ".html": 
      case ".log": 
       return "text/HTML"; 
      case ".txt": 
       return "text/plain"; 
      case ".doc": 
       return "application/ms-word"; 
      case ".tiff": 
      case ".tif": 
       return "image/tiff"; 
      case ".asf": 
       return "video/x-ms-asf"; 
      case ".avi": 
       return "video/avi"; 
      case ".zip": 
       return "application/zip"; 
      case ".xls": 
      case ".csv": 
       return "application/vnd.ms-excel"; 
      case ".gif": 
       return "image/gif"; 
      case ".jpg": 
      case "jpeg": 
       return "image/jpeg"; 
      case ".bmp": 
       return "image/bmp"; 
      case ".wav": 
       return "audio/wav"; 
      case ".mp3": 
       return "audio/mpeg3"; 
      case ".mpg": 
      case "mpeg": 
       return "video/mpeg"; 
      case ".rtf": 
       return "application/rtf"; 
      case ".asp": 
       return "text/asp"; 
      case ".pdf": 
       return "application/pdf"; 
      case ".fdf": 
       return "application/vnd.fdf"; 
      case ".ppt": 
       return "application/mspowerpoint"; 
      case ".dwg": 
       return "image/vnd.dwg"; 
      case ".msg": 
       return "application/msoutlook"; 
      case ".xml": 
      case ".sdxl": 
       return "application/xml"; 
      case ".xdp": 
       return "application/vnd.adobe.xdp+xml"; 
      default: 
       return "application/octet-stream"; 
     } 
    } 

maintenant mon problème est comment puis-je télécharger un dossier avec plusieurs fichiers qu'il contient .. est-il un moyen ???

par exemple i ont un dossier de récupération nommé dans C: drive qui contient deux fichiers untitled.bmp et test.txt ...

... merci

que je dois faire cela sans passer comme un éclair. .. s'il vous plaît suggérer un moyen ...

Répondre

1

Pour plusieurs fichiers, vous devrez les emballer ensemble comme, par exemple, un fichier ZIP.

Downloading Multiple Files as a Zip File Using GridView and SharpZipLib

+0

mais dans ce je dois aller dans le dossier et sélectionner les fichiers que je veux zip ... au lieu de cela si l'utilisateur veut juste zip un dossier qui contient 100 fichiers ... – user175084

+0

Non; Bien que le code que vous pouvez sélectionner tous les fichiers à ajouter sur le zip, sans intervention de l'utilisateur –

+0

J'ai ce que vous essayez de dire, mais si l'utilisateur veut sélectionner 3 dossiers du lecteur C: ou il y a d'autres dossiers dans l'un des dossiers sélectionnés ... j'ai essayé de mettre un dossier dans le dossier qui a des fichiers et il ne le lit pas ... – user175084

1

Vous pouvez zipper les fichiers ensemble (par exemple untitled.bmp et test.txt), puis les télécharger en un seul fichier.

+0

mais dans ce je dois aller dans le dossier et sélectionner les fichiers que je veux zip ... au lieu de cela si l'utilisateur veut juste zip un dossier qui contient 100 fichiers ... – user175084