请问:在文件下载时,点击打开,文件名为乱码,(已经进行过编码),如何解决?
luyes 2006-12-12 08:57:15 在文件下载时,点击打开,文件名为乱码????(已经进行过编码)
Dim filename As String
filename = tbFilepath.Text
'获得文件的扩展名
Dim fileext As String
Dim i As Integer
i = filename.LastIndexOf(".")
fileext = filename.Substring(i, filename.Length - i)
'获得文件的路径
Dim filepath As String
'找到文件的物理路径
filepath = Server.MapPath("./") + filename
'实例化文件流对象
Dim fs As FileStream
fs = New FileStream(filepath, FileMode.Open)
'获取文件流的大小
Dim fsize As Long
fsize = Convert.ToInt32(fs.Length)
'给数组赋值
Dim mybyte() As Byte
ReDim mybyte(fsize)
'将文件的数据读入数组
fs.Read(mybyte, 0, fsize)
fs.Close()
'以二进制流的形式读到浏览器
Response.AddHeader("Content-Disposition", "attachment;filename=" & System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8))
Response.ContentType = "application/octet-stream"
Response.BinaryWrite(mybyte)
Response.Flush()
Response.Close()
Response.End()
用这段代码实现了的文件的下载,然后在弹出的对话框中,点击下载的话,文件名就和原文件名一致,但是如果你点击直接打开,文件名就变成了乱码,这是中文文件名;如果是数字文件名,如11.doc,就变成了11[1].doc,请问高手:如何在打开文件的时候,让文件名也是正确的??
此前有人问过类似问题(http://community.csdn.net/Expert/TopicView3.asp?id=4956326),但没有解决。在线等...