Sostanzialmente dopo aver generato via codice il file vorrei che all'utente venisse proposto il download dello stesso anzichè fare il redirect al file con conseguente apertura del txt nel browser (e problemi coi caratteri e blablabla)
Si può fare?
Sostanzialmente dopo aver generato via codice il file vorrei che all'utente venisse proposto il download dello stesso anzichè fare il redirect al file con conseguente apertura del txt nel browser (e problemi coi caratteri e blablabla)
Si può fare?
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
si, con un vecchio codice (VB) funzionava:
codice:Response.Expires = -1 Dim strPath As String = Me.Server.MapPath("nomefile.txt") Dim file As FileInfo = New FileInfo(strPath) If file.Exists Then Response.Clear() Response.AddHeader("Content-Disposition", "attachment; filename=""" & file.Name & """") Response.AddHeader("Content-Length", file.Length.ToString()) Response.ContentType = "application/octet-stream" ' Spara il file al client ! Response.TransmitFile(strPath) Response.End() Else Response.Write("Impossibile scaricare il file.") End If
non l'ho provato con i nuovi browser/framework, vedi un po'
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
Sto cominciado a provare del sentimento per te
Grazie
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
Faccio ricorso a tutta la leggiadria e al sorriso che riesco ad esprimere in questo momento mmmma scusa, secondo te, che motivo ci potrebbe essere per il fatto che il tuo codice funziona perfettamente se lo metto nell'evento load di una pagina ed invece non funziona se lo metto nell'evento click di un linkbutton?
(giornata di mmm... ho tamponato un Tiguan, maremma maiala)
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
Probabilmente è perche' le proprieta' (l'header ed il ContentType in questo caso) dell'oggetto implicito Response non puoi cambiarle quando ti pare nel ciclo di vita della pagina..devi farlo quando la pagina nasce. Forse.
Ma se non erro, io lo feci al button_click e funzionava...forse è cambiato qualcosa nei framework nel frattempo.
tu sei sicuro di cio' che dici ?
Ultima modifica di djciko; 26-01-2018 a 17:46
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
...non fare di quese domande ad uno che ha appena tamponato un suv: certo che sono sicuro
Convengo sulla motivazione dell'header di pagina, ho risolto con un redirect ad altra pagina.
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
proprio per lo shock del tamponamento chiedevo, mica mettevo in dubbio la tua capacita' di coder
comunque, io ho fatto un bottone con il suo click, e funziona. Framework 4.0, visual studio 2017:
ASPX:
codice:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Download_Forzato.aspx.cs" Inherits="STUDIO3._0.Forum_HTML.Download_Forzato" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="bt" Text="scarica il file" runat="server" OnClick="bt_Click" /> </div> </form> </body> </html>
C#:
mi fa scaricare il file "file_download.txt" presente nella stessa cartellacodice:public partial class Download_Forzato : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // vuoto } protected void bt_Click(object sender, EventArgs e) { Response.Expires = -1; String strPath = Server.MapPath("file_download.txt"); System.IO.FileInfo file = new System.IO.FileInfo(strPath); if(file.Exists) { Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename='" + file.Name + "'"); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.TransmitFile(strPath); Response.End(); } else { Response.Write("Impossibile scaricare il file."); } } }
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
l'ho provato con Chrome.
quindi l'ipotesi dell'oggetto Reponse non è valida.
posta il tuo codice
Ultima modifica di djciko; 26-01-2018 a 19:25
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
spara pure, la mia autostima oggi è più in picchiata dei bitcoinproprio per lo shock del tamponamento chiedevo, mica mettevo in dubbio la tua capacita' di coder
linkbutton senza definizione del navigateurl, non button (peraltro dovrebbe essere la stessa cosa): nel click genero il file e poi lo passo alla funzione ridirigi(nomefile)
La funzione è più o meno la tua, a parte che io ho un percorso handmade
codice:Protected Sub ridirigi(ByVal nomefile As String) Response.Expires = -1 Dim filepath As String = HttpRuntime.AppDomainAppPath & "Uploads\Temp\" & nomefile Dim file As FileInfo = New FileInfo(filepath) If file.Exists Then Response.Clear() Response.AddHeader("Content-Disposition", "attachment; filename=""" & file.Name & """") Response.AddHeader("Content-Length", file.Length.ToString()) Response.ContentType = "application/octet-stream" Response.TransmitFile(filepath) Response.End() Else Response.Write("Impossibile scaricare il file.") End If End Sub
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)