当前位置:编程学习 > C#/ASP.NET >>

asp.net下载文件的路径中包含*或者是#的特殊字符,导致无法下载

在asp.net中,我要下载一个文件,而文件的完整路径中包含中*或者是#的特殊字符,导致在执行下载时,提示路径中包含非法字符而报错的问题,如:某个文件的完整路径是D:\File\2011*04*23\文件.doc,在下载的时候就会报错,同时要提醒的是文件的完整路径是没办法修改的,不可能在这里将*转换成其他字符的.请问各位有什么好的解决方法吗?如果有,请共享一下 --------------------编程问答-------------------- --------------------编程问答--------------------
Uri uri = WebHelper.ProcessSpecialCharacters(targetUrl);//targetUrl对应文件的绝对路径 
System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 
request.Method = "PUT"; 
request.Credentials = System.Net.CredentialCache.DefaultCredentials; 
request.ContentLength = stream.Length; 
/// <summary> 
/// 当上传或下载的文件名包含有特殊字符"#"时,需要执行以下的函数进行处理 
/// </summary> 
/// <param name="Url"></param> 
/// <returns></returns> 
private static Uri ProcessSpecialCharacters(string Url) 

Uri uriTarget = new Uri(Url); 
if (!Url.Contains("#")) 

return uriTarget; 

UriBuilder msPage = new UriBuilder(); 
msPage.Host = uriTarget.Host; 
msPage.Scheme = uriTarget.Scheme; 
msPage.Port = uriTarget.Port; 
msPage.Path = uriTarget.LocalPath + uriTarget.Fragment; 
msPage.Fragment = uriTarget.Fragment; 
Uri uri = msPage.Uri; 
return uri; 

Uri uri = new Uri(targetUrl);//targetUrl对应文件的绝对路径
详细出处参考:http://www.jb51.net/article/22477.htm


参考
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,