asp.net 做上传,下载时关于文件名字和后缀名。

做好上传后,将名字保存在数据库。有后缀名,但是在下载的时候名字,不是原文件的名字,而是这个下载页面的名字,下载下来的文件没有后缀名。请问这个问题怎么解决。... 做好上传后,将名字保存在数据库。有后缀名,但是在下载的时候名字,不是原文件的名字,而是这个下载页面的名字,下载下来的文件没有后缀名。请问这个问题怎么解决。 展开
 我来答
百度网友8b1b6824b
2011-10-13 · TA获得超过2121个赞
知道小有建树答主
回答量:554
采纳率:100%
帮助的人:304万
展开全部
说的不太清楚,首先下载到的是不是那个文件?只是文件名错了,还是都不对?
asp.net有TransmitFile、WriteFile、FileStream等方法,你用的是哪种?
最简单的下载方法,是将文件名形成URL后,附给HyperLink控件的NavigateUrl属性。
更多追问追答
追问
下在的文件是那个,文件没错,只是下载的时候保存的名字没有后缀名,但是在上传的时候是有的,而且还将这个名字保存在了数据库。但是在下载的时候就没有。我用的是responses.writefile(文件路径+文件名)
追答
好的,我知道问题了。responses.writefile方法的使用格式不对,正确的方法应该是:

string fileName ="aaa.zip";//客户端保存的文件名
string filePath=Server.MapPath("DownLoad/aaa.zip");//路径
FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式