asp.net 文件下载时,出现非法路径解决方案

原创 2012年03月30日 13:55:22

问题原因:asp.net 页面之间传递中文时,编码转换出错,所以会出现该情况。

 

思路:可以用Server.EncodeURl ,Server.DecodeURl的属性编码和解码

 

关键代码

 

在下载连接上将url进行编码:

 

public string EncodeURL(string s)
    {
        string path = Server.UrlEncode(s);
        return string.Format("Download.aspx?path={0}", path);

    }


 

在处理下载的页面,对url进行解码:

  Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //解决中文乱码
                string filePath = Request.QueryString["path"].ToString();
                filePath = Server.UrlDecode(filePath);
                FileInfo file = new FileInfo(filePath);
                if (file.Exists)
                {


                    Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name)); //解决中文文件名乱码   
                    Response.AddHeader("Content-length", file.Length.ToString());
                    Response.ContentType = "appliction/octet-stream";
                    Response.WriteFile(file.FullName);
                    Response.End();
                }
                else
                {
                    Response.Write("<font color='#ff0000'>您要下载的报表文件不存在,请联系管理员。</font>");
                }


 

以上给出关键代码,供大家参考。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

删除文件目录导致ASP.NET Session丢失的解决方案

最近从测试人员反馈过来的bug中,发现了一个问题,那就是session丢失的问题,session为什么会丢失呢?session一般会在什么时候丢失呢?丢失了我们改怎么处理呢? 一、现象      ...

[ASP.net教程] 新浪OAuth网站登陆连接,请求access_token时遇到21323 miss client id or secret 的解决方案

ios 借鉴下: 本文的环境仅仅是针对最新的新浪oauth2.0, 早期的1.0方式我不太了解,也不在本文的范畴内。 解决方案给出两种: 1,描述解决思路,各位自己去实现。  2,给出我开发好...

ASP.NET检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败 的解决方案

出现此问题的原因:调用EXCEL组件时没有权限   1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"   2.依次双击"组件服务"->"计算机"->&qu...

Asp.Net Server.Execute、Server.Transfer报“执行子请求时出错”解决方案

我们一般会自定义自己的HttpHandler来处理一些特殊的业务,往往需要在方法ProcessRequest中调用其他的实现IHttpHandler的Page页或ashx一般处理文件并获取响应结果继续...

C#.net文件批量上传解决方案附下载(swfupload)

因为最近项目需要多文件同时上传所以自己在网上找了下方法。swfupload做到了,所以我把我的C#.net环境的多文件同时上传共享给大家!(本实例最大只能上传500M的数据,如需要上传更大的下面会告诉...

C#.net文件批量上传解决方案附下载(swfupload)

因为最近项目需要多文件同时上传所以自己在网上找了下方法。swfupload做到了,所以我把我的C#.net环境的多文件同时上传共享给大家!(本实例最大只能上传500M的数据,如需要上传更大的下面会告诉...

C#.net文件批量上传解决方案附下载(swfupload)

因为最近项目需要多文件同时上传所以自己在网上找了下方法。swfupload做到了,所以我把我的C#.net环境的多文件同时上传共享给大家!(本实例最大只能上传500M的数据,如需要上传更大的下面会告诉...

.net从服务器下载文件中文名乱码解决方案

从服务器下载文件中文名乱码解决方案,具体文字说明不多了,直接贴代码了,具体代码如下: try { string excelName = Request["excelName"]....

C#.net+JS文件批量上传解决方案附下载

好了大家只要下载我这个附件就可以去修改成你想要的效果了注一定要在 IIS 下运行。不然上传路径会报错的哦!完毕 ) 如需要上传更大的下面会告诉大家如何设置 ) 因为最近项目需要多文件同时上传所以自...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)