Salvare un file.

venerdì 29 ottobre 2004 - 11.55

PEPE Profilo | Senior Member

Salve,
tramite il metodo writexml mi trasformo una tabella in un file xml.

Ora se in una pagina aspx faccio un linkbutton che punta a quel file, quando ci clicco vedo il file xml sul browser. Come si fa a fare in modo che tale file xml non mi compare nel browser, ma mi compare la finestra del download?

GvnnRules Profilo | Senior Member

Devi fare un Response.BinaryWrite, ecco un pò di codice:

'le variabili sono:
'strUrlFile : path del file
'strNomeFile: nome del file

'leggi il file e ricavi i byte
Dim fs As New System.IO.FileStream(Server.MapPath(strUrlFile), System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Read)

'ricavo i byte
Dim MyData(fs.Length) As Byte
fs.Read(MyData, 0, fs.Length)

'poi invii i dati al cliente
Response.Buffer = True
Response.AddHeader("Content-Disposition", "attachment; filename= " & strNomeFile)
Response.ContentType = "*"
Response.BinaryWrite(MyData)

Attenzione però, quando fai quest'operazione l'unico output della pagina deve essere questo, altrimenti quando fai il download oltre ai byte del file ti vengono inviati anche i byte della pagina aspx, di conseguenza il file risulta corrotto. Il consiglio che ti posso dare è fare una pagina adibita al solo download dei file.

Spero funzioni :-P

Ciaoz
Gvnn

PEPE Profilo | Senior Member

Grazie 1000,
appena provo ti dico.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5