文件下载出现的问题,急急急

littlechang 2003-12-02 01:12:18
我的文件下载的代码如下VB.NET
Dim fileName As String
Dim strFileName As String
Dim fileSize As Long
Dim Buffer() As Byte
Dim myF As System.IO.FileStream
Dim myFileStream As System.IO.FileStream

strFileName = "固定资产管理办法.doc"
fileName = strFileName
myF = System.IO.File.OpenRead(Server.MapPath(strFileName))
Response.Write(strFileName)

strFileName = System.Web.HttpUtility.UrlEncode(System.Text.UTF8Encoding.UTF8.GetBytes(strFileName))
Response.Write(strFileName)
Response.ContentType = myF.GetType().ToString()
Response.Charset = "GB2312"
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
myFileStream = New System.IO.FileStream(Server.MapPath(fileName), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
fileSize = myFileStream.Length
ReDim Buffer(CInt(fileSize))
myFileStream.Read(Buffer, 0, CInt(fileSize))
myFileStream.Close()
Response.BinaryWrite(Buffer)
Response.End()
显示提示保存的文件名为乱码,同样的C#代码如下:
string strFileName ="";
string filename="";
strFileName = "doc\\固定资产管理办法.doc";
filename =strFileName;
FileStream myF=File.OpenRead(Server.MapPath(strFileName));//通过想对路径取得物理的路径
Response.Write(strFileName);

strFileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName));
Response.Clear();
Response.Write(strFileName);
Response.ContentType= myF.GetType().ToString();
Response.Charset = "UTF-8";
Response.AddHeader("Content-Disposition", "attachment; filename="+strFileName);
System.IO.FileStream MyFileStream =new FileStream(Server.MapPath(filename),System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);
long FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.BinaryWrite(Buffer);
Response.End();

显示的文件名正常,请高手指点。
这两段代码下载的压缩文件都是正常的,但下载的word文档过来后打开都是乱码,不知何故,高手帮忙啊。
...全文
38 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwangman 2003-12-09
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName))
littlechang 2003-12-02
  • 打赏
  • 举报
回复
英文名字是正常的
littlechang 2003-12-02
  • 打赏
  • 举报
回复
<globalization requestEncoding="GB2312" responseEncoding="GB2312" culture="zh-CN" fileEncoding="GB2312" />
已经有了
guoyan19811021 2003-12-02
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName))
acewang 2003-12-02
  • 打赏
  • 举报
回复
下载参考:
用aspx读取文件输出它
string strFile = "e:\\abc.doc";
FileStream fs = new FileStream(strFile, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(File.Name));
Response.BinaryWrite(bytes);
Response.End();
acewang 2003-12-02
  • 打赏
  • 举报
回复
如果文件名过长,编码后也会出现乱码
bobjeey 2003-12-02
  • 打赏
  • 举报
回复
在web.config的<system.web>节点下

<system.web>
...
<globalization requestEncoding="GB2312" responseEncoding="GB2312" culture="zh-CN" fileEncoding="GB2312" />

...
</system.web>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧