2011-08-03 4 views
0

Dans un projet de site Web .net, j'ai un fichier csv (situé dans le dossier app_data du projet) sur lequel j'écris des données après que l'utilisateur a cliqué sur un bouton. Maintenant, je veux ouvrir le fichier et afficher le contenu à l'utilisateur (comme si cela se produisait s'il cliquait dessus dans le shell de Windows), afin que l'utilisateur puisse vérifier les données et enregistrer le fichier dans le dossier de son choix. Comment puis-je accomplir cela?Ouvrir le fichier csv et l'afficher à l'utilisateur (.Net)

Répondre

0

Il est nécessaire de rediriger la réponse du serveur vers le fichier CSV.

string path = context.Server.MapPath(String.Format(@"~/App_Data/" + csvFile)); 

using (FileStream fs = new FileStream(path, FileMode.Open)) 
      { 
       long FileSize = fs.Length; 

       byte[] Buffer = new byte[(int)FileSize]; 
       fs.Read(Buffer, 0, (int)FileSize); 

       Response.Clear(); 
       Response.AddHeader("Content-Disposition", "attachment;filename=Export.csv"); 
       Response.ContentType = "text/csv"; 
       Response.BinaryWrite(Buffer); 

       Response.Flush(); 
      } 

Le client reçoit le fichier et peut l'ouvrir et l'éditer.

3

Pourquoi pensez-vous que le serveur est capable d'ouvrir un fichier sur le client? Ouvrir un fichier arbitraire avec le gestionnaire de shell associé serait un gros trou de sécurité.

Vous pouvez afficher les données dans votre site web et ensuite offrir un téléchargement.

Questions connexes