请教.NET WEB中,文件下载的问题。为何文件名会变成“download”

cowlilian 2005-03-04 02:28:57
问个有关.NET WEB的问题:

我查询数据库,读出原文件名称,长度等信息。
然后重写response内容,用Response.WriteFile来下载文件。
但下载的时候,文件名有时会变成“download”呢?

有时文件类型是空的,但是数据库里我有保存文件的信息啊,读取数据库信息时也没有错。

就是下载时出错。
...全文
311 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lansea 2005-08-22
  • 打赏
  • 举报
回复
我也曾这样写过
是在本页面传filename,filepath变量,下载的是本页面的html
如果再单独做个down页面,用url传filename,filepath到down就没问题了
你可以试试
TechEye 2005-08-22
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Disposition","attachment;filename=你的文件名");
haoco 2005-03-06
  • 打赏
  • 举报
回复
up
cowlilian 2005-03-04
  • 打赏
  • 举报
回复
替换?替换成什么呢?

这个oldfilename的意思是指,原文件名称。因为我把上传的文件改名后放在服务器上了,所以数据库保留了文件信息,包括这个原文件名称。

下载的时候就读取这个原文件名称。
yinbinfeng0451 2005-03-04
  • 打赏
  • 举报
回复
Page.Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(oldfilename,System.Text.Encoding.UTF8));
将oldfilename替换一下。。。
kenMoxi 2005-03-04
  • 打赏
  • 举报
回复
string fileName ="test.doc"

fileName = Server.MapPath("/")+"test\\"+fileName;

DownFile(fileName);


public void DownFile(string fileName)
{
System.IO.FileInfo file = new System.IO.FileInfo(fileName);
Response.Clear();
Response.AddHeader("Content-Type", "application/octet-stream");
Response.Charset = "utf-8";
Response.AddHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.WriteFile(file.FullName);
Response.Flush();
Response.Clear();
Response.End();
}
LoveCherry 2005-03-04
  • 打赏
  • 举报
回复
oldfilename哪里
cowlilian 2005-03-04
  • 打赏
  • 举报
回复
自己顶。
shiningpolarstar 2005-03-04
  • 打赏
  • 举报
回复
up
cowlilian 2005-03-04
  • 打赏
  • 举报
回复
以下是我下载文件的代码。请各位帮忙看看。

FileInfo MyFileInfo = new FileInfo(path + newfilename);
long FileSize = MyFileInfo.Length;
Page.Response.Buffer=true;
Page.Response.Clear();
Page.Response.ClearHeaders();
Page.Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Page.Response.ContentType=filetype;
Page.Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(oldfilename,System.Text.Encoding.UTF8));
Page.Response.Flush();
Response.WriteFile(path+newfilename, 0, FileSize);
Page.Response.End();
zhouweiwansui 2005-03-04
  • 打赏
  • 举报
回复
友情up

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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