Download af fil gennem getFile.aspx
Jeg har et site, hvor jeg gerne vil beskytte nogle filer fra at blive downloaded med mindre man er logget ind. Derfor har jeg lagt en filstruktur uden for IIS'en, da jeg heller ikke er interesseret i at man skal kunne downloade filen hvis man kender den rigtige sti.Jeg har lavet følgende side, som håndterer dette:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim file As String = Request.QueryString("file")
GetFileToDownload(file)
Catch ex As Exception
Response.Write("Oops...contact the admin!")
End Try
End Sub
Public Sub GetFileToDownload(ByVal fullpath As String)
Dim lastIndex As Int32 = fullpath.LastIndexOf("\") + 1
Dim strFileName As String = fullpath.Substring(lastIndex, fullpath.Length - lastIndex)
If IO.File.Exists(fullpath) Then
Dim fi As New FileInfo(fullpath)
Dim filename As String = ""
' Connect to database to track number of downloads
Response.Clear()
Response.ContentType = "application/zip"
Response.AppendHeader("Content-Length", fi.Length.ToString())
'Response.AddHeader("content-disposition", "attachment; filename=\"" + strFileName + "\"");
Response.AddHeader("content-disposition", "attachment; filename=" + strFileName)
Response.WriteFile(fullpath)
Response.End()
End If
Response.Write("<h1>No file found!</h1>")
Response.End()
End Sub 'GetFileToDownload
End Sub
Mit problem er, at når downloadboksen kommer frem, så står den bare og kører uden at filen bliver downloadet. Går jeg ind og debugger, fejler den på Response.WriteFile(fullpath) og siger "Access to the path "c:\minstiudenforIIS\testFile.zip" is denied."
Jeg har fået metoden til at virker med filer indenfor IIS'en. Men hvorfor virker det ikke her, og hvordan løser jeg problemet?
