asp.net 做上传,下载时关于文件名字和后缀名。
做好上传后,将名字保存在数据库。有后缀名,但是在下载的时候名字,不是原文件的名字,而是这个下载页面的名字,下载下来的文件没有后缀名。请问这个问题怎么解决。...
做好上传后,将名字保存在数据库。有后缀名,但是在下载的时候名字,不是原文件的名字,而是这个下载页面的名字,下载下来的文件没有后缀名。请问这个问题怎么解决。
展开
展开全部
说的不太清楚,首先下载到的是不是那个文件?只是文件名错了,还是都不对?
asp.net有TransmitFile、WriteFile、FileStream等方法,你用的是哪种?
最简单的下载方法,是将文件名形成URL后,附给HyperLink控件的NavigateUrl属性。
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();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询