Non dovrebbe essere così difficile scoprire come farlo. Fondamentalmente sto provando a prendere una stringa e lasciare che il client la salvi quando fanno clic su un pulsante. Dovrebbe apparire con una finestra di dialogo Salva/Apri. Nessun campanello extra e fischietti o altro. Non è scienza missilistica, (o così avrei pensato).Richiedi all'utente di salvare/aprire il file in ASP.NET C#
Sembra esserci un sacco di modi diversi (StreamWriter, HttpResponse, ecc.), Ma nessuno degli esempi che sono riuscito a trovare funziona correttamente o spiega cosa sta succedendo. Grazie in anticipo.
Un esempio uno dei tanti blocchi di codice che ho trovato ...
(Questo è solo un esempio, sentitevi liberi di non basare la vostra risposta intorno a questo.)
String FileName = "FileName.txt";
String FilePath = "C:/...."; //Replace this
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath);
response.Flush();
response.End();
Linea 2 dice di sostituire quella stringa. Come? Questo codice è stato pubblicizzato come una finestra di dialogo. Non dovrei dover impostare un percorso nel codice, giusto?
EDIT: esito finale (A cura di nuovo, Elimina deve venire prima della fine();)
string FilePath = Server.MapPath("~/Temp/");
string FileName = "test.txt";
// Creates the file on server
File.WriteAllText(FilePath + FileName, "hello");
// Prompts user to save file
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath + FileName);
response.Flush();
// Deletes the file on server
File.Delete(FilePath + FileName);
response.End();
questo esempio viene illustrato come per lo streaming di un file indietro al cliente. Stai cercando un modo per richiamare una finestra di dialogo salva/apri sul client in modo che tu possa caricare un file sul tuo server? –
"Fondamentalmente sto provando a prendere una stringa e lasciare che il client la salvi quando fa clic su un pulsante." Qualcosa di semplice come ... File.WriteAllText ("C: \\ text.txt", "ciao"); Tranne che con una finestra di dialogo. Voglio che l'utente lo scarichi in qualunque posizione specificata. – Ber53rker