Forzare il download del file

venerdì 31 marzo 2006 - 10.41

Ace1968 Profilo | Newbie

Salve a tutti,
ho un'applicazione ASP.NET; in questa applicazione, in una pagina, e' possibile allegare dei file, che poi, teoricamente possono essere consultati.
Come mai quando cerco di aprire un file word, o excel dall'applicazione che gira sul server non riesco?
Come posso forzare la finestra di richiesta "Apri" "Salva" sul client per forzare l'apertura del file?.

Grazie a tutti

Alberto

alx_81 Profilo | Guru

prova questa..


Imports System
Imports System.IO
Imports System.Web
Imports Microsoft.Win32

Public Class WebSupport

'Questo metodo permette di scaricare qualunque tipo di file via HTTP
Public Shared Sub WriteFile(ByVal Filename As String, ByVal AsAttachment As Boolean, ByVal returnUrl As String)
'Oggetto HttpResponse
Dim ObjResponse As HttpResponse = HttpContext.Current.Response
'Informazioni relative al file da scaricare
Dim MyFile As FileInfo = New FileInfo(Filename)

If (Not MyFile.Exists) Then
'File non trovato
ObjResponse.Write("<font face=tahoma size=2 color=black>File non trovato! <a href='" & returnUrl & "';>Clicca qui</a></font>")
ObjResponse.End()
Exit Sub
End If

Try
ObjResponse.ContentType = DirectCast(Registry.ClassesRoot.OpenSubKey(MyFile.Extension).GetValue("Content Type", "application\octet-stream"), String)
Catch ex As Exception
ObjResponse.ContentType = "application\octet-stream"
End Try

If (AsAttachment) Then
ObjResponse.AppendHeader("Content-Disposition", _
String.Format("Attachment; filename=""{0}""", MyFile.Name))
End If
ObjResponse.WriteFile(MyFile.FullName)
ObjResponse.End()

End Sub

End Class
Alx81 =)

Ace1968 Profilo | Newbie

E' esattamente quello che faccio anch'io, infatti sulla mia macchina funziona correttamente, ma quando provo sul server non funziona...
Sul server non e' installato office...potrebbe essere il problema?

fedecheller Profilo | Junior Member

se fai puntare al file e non funziona
<a href="http://miosito/miofile.doc">file</a>

probabilmente sono i settaggi del server web che devi modificare
MUSIC IS FREE, DRINK ARE TO PAY, STAY TILL LATE BUT SLEEP AWAY

Ace1968 Profilo | Newbie

Scusa,
riguardando il tuo codice ho trovato un piccolo errore di sintassi nel mio, e sistemandolo adesso funziona.

Grazie infinite.

alx_81 Profilo | Guru

ottimo =)


quindi tutto ok?
Alx81 =)

elocino Profilo | Newbie

Siccome sto utilizzando lo stesso codice anche io, mi dici dove è l'errore non vorrei che quando pubblico mi trovo delle sorprese.


Elocino
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