输入:http://q.cnblogs.com/q/53747/%%%%%%%%%
提示:
Your browser sent a request that this server could not understand. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
URL: | http:// |
Server: | lb-130114ay41d-4 |
Date: | 2013/08/20 13:06:54 |
Powered by Tengine
所以,服务器不能理解这样的url,所以你从文件路劲中避免吧~
文件的确放在服务器上,是服务器的原因导致的吗?
是服务器太差了还是都是这样的?
非常感谢!
@红尘中行: 是你的路劲里有%号,还是你的文件名有%号?应该是url编码造成的。
后台遇到%,会用url解码,然后解析不出来,所以就提示错误了(猜测待验证)
@幻天芒: 您的意思是url解析不出来。
文件名里有%号,因为要下载文件,所以说路径里也包含文件名。
在前台要下载除了<a href>之外还有其他方法吗?、
谢谢!
@红尘中行:
if (Request.Browser.Browser == "IE") name = Server.UrlEncode(name); Response.Clear(); string filePath = Server.MapPath("~/Export/Excel/Expense/") + path + ".xlsx"; //增加xls格式的文件下载 if (System.IO.File.Exists(filePath)) { Response.AddHeader("Content-Disposition", "attachment;fileName=" + name + ".xlsx"); } else { filePath = filePath.Substring(0, filePath.Length - 1); Response.AddHeader("Content-Disposition", "attachment;fileName=" + name + ".xls"); } Response.WriteFile(filePath); 类似的写法即可~这样路径就在后台被处理了,不经过url~
@幻天芒: 好的,谢谢!