2009-08-04 10 views
1

J'ai des données sous la forme d'une chaîne. Je veux écrire ces données dans un fichier et enregistrer le fichier sur le chemin spécifié. Le chemin serait spécifié en ouvrant une boîte de dialogue Enregistrer sous en cliquant sur le bouton. Comment cela peut il etre accompli??enregistrer en tant que boîte de dialogue dans asp.net

+0

On peut supposer que vous essayez de permettre à quelqu'un d'enregistrer le fichier côté client et non côté serveur? –

Répondre

1
Response.ContentType = "application/octet-stream" (or content type of your file). 
Response.AppendHeader("content-disposition", "attachment;filename=" & strFileName) 
+0

Je pense que vous feriez mieux de montrer comment écrire le contenu. Cela ressemble à un débutant. –

+0

Pourriez-vous s'il vous plaît expliquer un peu plus. comment cela montrera le dialogue Saveas –

0

Vous pouvez utiliser un LinkButton (ou lien régulier) et ont le point d'URL pour un handler (ASHX) qui récupère les données et renvoie une réponse à la disposition de contenu mis à l'attachement. Ecrire les données à la réponse. Vous devrez également définir d'autres en-têtes dans la réponse, tels que le type de contenu et la longueur. Cela donnerait au document (fichier) un lien régulier qui pourrait peut-être être mis en signet (si un lien régulier) dans le futur afin qu'il puisse être récupéré à nouveau. Vous devez transmettre suffisamment de données dans la chaîne de requête pour pouvoir identifier les données à télécharger.

1

Il n'existe aucune boîte de dialogue Enregistrer sous dans ASP.NET. N'oubliez pas que votre application ASP.NET s'exécute dans un navigateur sur l'ordinateur d'un utilisateur. Vous n'avez pas accès au système de fichiers de l'utilisateur, y compris la boîte de dialogue Enregistrer sous.

Cependant, si vous envoyez un fichier à l'utilisateur en pièce jointe, la plupart des navigateurs afficheront une boîte de dialogue demandant à l'utilisateur d'enregistrer ou d'ouvrir le fichier. Peut-être que l'utilisateur choisira de le sauvegarder. C'est ce que fait l'exemple de Phoenix.

2

Le fichier est enregistré dans le serveur d'abord avec ce code

string getnote = txtdisplay.Text.Trim(); 
     String filepath = Server.MapPath(@"img\new1.txt"); 
     System.IO.FileStream ab = new System.IO.FileStream(filepath, System.IO.FileMode.Create); 
     System.IO.StreamWriter Write101 = new System.IO.StreamWriter(ab); 
     Write101.WriteLine(getnote); 
     Write101.Close(); 
     Response.ClearContent(); 

A partir du serveur obtenir le fichier comme attachment.Use le code suivant pour enregistrer en tant que boîte de dialogue pour le téléchargement ou l'enregistrement du fichier. Le fichier sera enregistré par défaut dans le dossier de téléchargement. Pour enregistrer à l'emplacement spécifié, modifiez les paramètres du navigateur.

Response.ContentType = "text"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=new1.txt"); 
     Response.TransmitFile(Server.MapPath("~/img/new1.txt")); 
     Response.End(); 
0

si j'userstand bien, ici -

saveFileDialog1.DefaultExt = "*.file"; 
     saveFileDialog1.Filter = "File|*.file|Other File|*.OFile|"; 
     if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
      saveFileDialog1.FileName.Length > 0) 
     { 
      WebClient wc = new WebClient(); 
      wc.DownloadFile("http://www.exaple.com/exaplefile", saveFileDialog1.FileName);; 
     } 
Questions connexes