|
.net
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
How to download a file with asp.net 1.1I have a file upload/download web app - it uploads great, but my download function doesn't work for SWF files. If I type the complete path to them into the browser, and run from there, it works perfect - but I don't want to let people see the URL - so instead, I have the download call this function: Dim FileToDownload As String = "test.swf" Dim iStream As System.IO.Stream ' Buffer to read 10K bytes in chunk: Dim buffer(10000) As Byte ' Length of the file: Dim length As Integer ' Total bytes to read: Dim dataToRead As Long ' Identify the file to download including its path. Dim filepath As String = "c:\" & FileToDownload ' Identify the file name. Dim filename As String = System.IO.Path.GetFileName(filepath) Try ' Open the file. iStream = New System.IO.FileStream(filepath, System.IO.FileMode.Open, _ IO.FileAccess.Read, IO.FileShare.Read) ' Total bytes to read: dataToRead = iStream.Length Response.ContentType = "application/octet-stream" Response.AddHeader("Content-Disposition", "attachment; filename=" & filename) ' Read the bytes. While dataToRead > 0 ' Verify that the client is connected. If Response.IsClientConnected Then ' Read the data in buffer length = iStream.Read(buffer, 0, 10000) ' Write the data to the current output stream. Response.OutputStream.Write(buffer, 0, length) ' Flush the data to the HTML output. Response.Flush() ReDim buffer(10000) ' Clear the buffer dataToRead = dataToRead - length Else 'prevent infinite loop if user disconnects dataToRead = -1 End If End While Catch ex As Exception ' Trap the error, if any. 'Response.Write("Error : " & ex.Message) Finally If IsNothing(iStream) = False Then ' Close the file. iStream.Close() End If End Try But when using this, the SWF file doesn't play. I think it's something to do with the buffer - perhaps sending too many bytes to the download, which then somehow corrupts the file - but I'd be grateful if anyone could help me sort it. Thank you, Mark *** Sent via Developersdex http://www.developersdex.com *** |
|||||||||||||||||||||||