asp.net中用流下载文件中文支持问题(解决问题再送1000分)
'web.config文件默认使用utf-8做request/response,不允许改变。这个代码能最大允许18个字符中文正确显示,但超过18个便失败。请问如何解决让之在utf-8编码下支持简体中文(任意长文件名)。
'代码:
sub test
Dim sFilename As String = "这是测试mypic这是测试mypic这是测试mypic这是测试mypic.jpg"
Dim sPath As String = Server.MapPath("./" & sFilename)
If File.Exists(sPath) Then
Dim ImageSize As Long
Dim ImageBuffer() As Byte
ImageSize = FileLen(sPath) '设置文件大小
'创建一文件流对象
Dim fs As FileStream = New FileStream(sPath, FileMode.OpenOrCreate)
'基于文件流创建二进制读
Dim r As BinaryReader = New BinaryReader(fs)
'指到文件的开头位置
r.BaseStream.Seek(0, SeekOrigin.Begin)
ImageBuffer = r.ReadBytes(ImageSize)
sFilename = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(Right(sFilename, 18)))
Response.Clear()
Response.ContentType = "image/jpeg"
Response.AddHeader("Content-Disposition", "attachment; filename=""" & sFilename & """")
Response.AddHeader("Content-Length", ImageBuffer.Length)
Response.BinaryWrite(ImageBuffer)
r.Close()
fs.Close()
Response.End()
Else
Response.Write("文件不存在!")
End If
end sub
'代码:
sub test
Dim sFilename As String = "这是测试mypic这是测试mypic这是测试mypic这是测试mypic.jpg"
Dim sPath As String = Server.MapPath("./" & sFilename)
If File.Exists(sPath) Then
Dim ImageSize As Long
Dim ImageBuffer() As Byte
ImageSize = FileLen(sPath) '设置文件大小
'创建一文件流对象
Dim fs As FileStream = New FileStream(sPath, FileMode.OpenOrCreate)
'基于文件流创建二进制读
Dim r As BinaryReader = New BinaryReader(fs)
'指到文件的开头位置
r.BaseStream.Seek(0, SeekOrigin.Begin)
ImageBuffer = r.ReadBytes(ImageSize)
sFilename = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(Right(sFilename, 18)))
Response.Clear()
Response.ContentType = "image/jpeg"
Response.AddHeader("Content-Disposition", "attachment; filename=""" & sFilename & """")
Response.AddHeader("Content-Length", ImageBuffer.Length)
Response.BinaryWrite(ImageBuffer)
r.Close()
fs.Close()
Response.End()
Else
Response.Write("文件不存在!")
End If
end sub
...全文
相关推荐
ASP.NET Core 导入导出Excel xlsx 文件实例
ASP.NET Core是一个跨平台的高性能框架,用于构建现代云应用。在本文中,我们将探讨如何在ASP.NET Core中实现Excel xlsx文件的导入与导出功能。
ASP.NET文件下载函数.doc
ASP.NET文件下载功能是Web应用程序中常见的需求,用于允许用户从服务器下载各种类型的文件,如文档、图片或视频。在ASP.NET中,可以使用HttpResponse对象提供的方法来实现这个功能。
asp.net数字转换中文
标题"asp.net数字转换中文"所指的就是如何在ASP.NET环境下实现数字到中文汉字的转换功能。
asp.net 断点续传下载
以下是 ASP.NET 实现断点续传下载的关键步骤:1. **文件信息存储**:首先,服务器端需要存储文件的相关信息,包括文件总大小、已下载的部分以及可能的临时文件。这通常需要数据库或文件系统的支持。
asp.net文件下載的方法,不管何種格式都會彈出保存框
### ASP.NET 文件下载方法详解:实现任意格式文件均弹出保存对话框#### 知识点概述在本文中,我们将深入探讨一个特定的技术问题——如何在ASP.NET应用程序中实现文件下载功能,使得不论文件为何种格式


