[想想]Response.WriteFile();路径问题
最近要实现一个下载的功能,不能通过URL连接下来,只能点击按钮下来,现在出来一个觉得最简单的问题,把我卡死了,共享出来大家看看咯
C# code
Response.Clear();
Response.Charset = "gb2312";
Response.Buffer = true;
//关闭ViewState以提高速度
this.EnableViewState = false;
//定义输出文件编码及类型和文件名
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + "这个路径是另外目录的");
//因为保存的文件类型不限,此处类型选择“unknown”。
Response.ContentType = "application/unknown";
Response.WriteFile("这个路径是另外目录的");
//清空并关闭输出流
Response.Flush();
Response.Close();
Response.End();
什么意思咯,现在网站有两个目录,一个SOFT是专门放文件的,一个DOWNLIST是提供下来的,放的是页面
上面的代码页面在DOWNLIST目录
上面要下载的文件目录在SOFT
问题就出来了,我点击按钮,然后他就会报错,因为WriterFile获取的目录是这样的D:\DemoProject\DoWNLIST\SOFT\test.rar
但是我放进去的路径是
D:\DemoProject\SOFT\test.rar
所以上面的路径是错的,现在怎么办咯,大家都帮帮我咯
------解决方案--------------------
Response.AppendHeader("Content-Disposition", "attachment;filename=" + "这个路径是另外目录的");
这一句filename是用户点击下载链接后,在浏览器端显示的文件名字,跟文件在服务器上的实际物理路径没有关系。
Response.WriteFile("这个路径是另外目录的");
这一句是根据给定的文件路径向客户端发送文件流,你提到的这个问题是相对路径的问题,如果SOFT文件夹在网站根目录下的话,可以使用Server.MapPah方法转换成服务器的物理路径,这样就可以准确定位到你的文件。
Response.WriteFile(Server.MapPath("~/soft") + filename);
------解决方案--------------------不太懂,等答案~
------解决方案--------------------不会asp.net,友情绑定。
------解决方案--------------------顶!具有一定的代表性!
------解决方案--------------------帮顶,学习
------解决方案--------------------前一段时间也做了个上传下载的功能,
刚开始做下载的时候我就直接搞成物理路径了,
可是这样下载是不行的,因为布置到网站上以后必须是相对路径才行哦。
------解决方案--------------------你传到虚拟目录试试!!