问题如下:
向ASPX面中传递一个服务器的文件的路径如:F:\SelectDirectory\Directory1\UserName1\Test.RAR
由服务端打开文件并服务到Response.OutputStream中,需要在Web面页中打开时可以保存文件并设置正确的文件名和文件扩展名
Aspx的面页名称为Download.aspx
打开页面后,显示下载Download.aspx
请问如何使下的文件名为Test.RAR
谢谢
代码如下:
If Not (Request.Params("FilePath") Is Nothing) Then
_filePath = Request.Params("FilePath")
Else
_filePath = String.Empty
End If If Not Me.IsPostBack Then
If _filePath <> String.Empty Then
Download(_filePath)
End If
End If End Sub ' 下载文件
Private Sub Download(ByVal filePath As String) ' 如果文件不存,显示错误信息
If Not File.Exists(filePath) Then Exit Sub
End If
Try
Dim fileStream As New System.IO.FileStream(filePath, IO.FileMode.Open, FileAccess.Read)
Dim memStream As New MemoryStream Dim objReader As New BinaryReader(fileStream)
Dim objWriter As New BinaryWriter(memStream)
objWriter.Write(objReader.ReadBytes(CType(fileStream.Length, Integer))) Response.ContentType = GetContentType(filePath.Substring(filePath.LastIndexOf(".".ToCharArray)))
memStream.WriteTo(Response.OutputStream) objReader.Close()
objWriter.Close()
memStream.Close()
fileStream.Close() Catch ex As Exception
ProcessModuleLoadException(Me, ex)
End Try
End Sub
Private Function GetContentType(ByVal fileExpand As String) As String Dim rootReg As RegistryKey
Dim fileReg As RegistryKey
Dim returnValue As String ' 如果没有扩展名中的小点,添加
If fileExpand.Chars(0) <> ".".ToCharArray Then
fileExpand = "." + fileExpand
End If Try
rootReg = Registry.ClassesRoot fileReg = rootReg.OpenSubKey(fileExpand) ' 如果有注册信息
If Not (fileReg Is Nothing) Then
returnValue = fileReg.GetValue("Content Type", DEFINE_CONTENT_TYPE).ToString
End If Catch ex As Exception
returnValue = DEFINE_CONTENT_TYPE
End Try Return returnValue End Function
向ASPX面中传递一个服务器的文件的路径如:F:\SelectDirectory\Directory1\UserName1\Test.RAR
由服务端打开文件并服务到Response.OutputStream中,需要在Web面页中打开时可以保存文件并设置正确的文件名和文件扩展名
Aspx的面页名称为Download.aspx
打开页面后,显示下载Download.aspx
请问如何使下的文件名为Test.RAR
谢谢
代码如下:
If Not (Request.Params("FilePath") Is Nothing) Then
_filePath = Request.Params("FilePath")
Else
_filePath = String.Empty
End If If Not Me.IsPostBack Then
If _filePath <> String.Empty Then
Download(_filePath)
End If
End If End Sub ' 下载文件
Private Sub Download(ByVal filePath As String) ' 如果文件不存,显示错误信息
If Not File.Exists(filePath) Then Exit Sub
End If
Try
Dim fileStream As New System.IO.FileStream(filePath, IO.FileMode.Open, FileAccess.Read)
Dim memStream As New MemoryStream Dim objReader As New BinaryReader(fileStream)
Dim objWriter As New BinaryWriter(memStream)
objWriter.Write(objReader.ReadBytes(CType(fileStream.Length, Integer))) Response.ContentType = GetContentType(filePath.Substring(filePath.LastIndexOf(".".ToCharArray)))
memStream.WriteTo(Response.OutputStream) objReader.Close()
objWriter.Close()
memStream.Close()
fileStream.Close() Catch ex As Exception
ProcessModuleLoadException(Me, ex)
End Try
End Sub
Private Function GetContentType(ByVal fileExpand As String) As String Dim rootReg As RegistryKey
Dim fileReg As RegistryKey
Dim returnValue As String ' 如果没有扩展名中的小点,添加
If fileExpand.Chars(0) <> ".".ToCharArray Then
fileExpand = "." + fileExpand
End If Try
rootReg = Registry.ClassesRoot fileReg = rootReg.OpenSubKey(fileExpand) ' 如果有注册信息
If Not (fileReg Is Nothing) Then
returnValue = fileReg.GetValue("Content Type", DEFINE_CONTENT_TYPE).ToString
End If Catch ex As Exception
returnValue = DEFINE_CONTENT_TYPE
End Try Return returnValue End Function
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货