我的浏览器显示文件名为
的网址http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0%2C1%25.pdf
实际文件名为204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf
在urldecode之后,它提供了错误的文件名
http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0,1%.pdf
更新:
最初我认为它的URL解码问题,但是在浏览器中呈现时像名称204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%.pdf
这样的文件会抛出Bad请求。我正在使用Kohana 3框架。它与服务器有关吗?
答案 0 :(得分:4)
$url = 'http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf';
$encode = urlencode($url);
$decode = urldecode($encode);
echo $url."<br />";
echo $encode."<br />";
echo $decode."<br />";
// outputs
http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf
http%3A%2F%2F204160_20090604_Atropine_DCB_oogdruppels_0%2C5%25.pdf
http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf
一切都好。你的错误在其他地方。
答案 1 :(得分:2)
您正在查看两个不同的文件。
无法将204160_20090604_Atropine_DCB_oogdruppels_
urlen编码为204177_20090604_Chloorhexidine_DCB_oogdruppels_
,编码不会更改字母字符。
错误很可能出现在创建文件列表并输出链接的代码中;链接标题和文件名之间的映射似乎搞砸了。
答案 2 :(得分:0)
这将使用c#
为您提供确切的文件名mServer.UrlDecode( “http://www.example.com/pdf/204160_20090604_Atropine_DCB_oogdruppels_0,5%25.pdf”)
,(逗号)编码为%2c %(百分比)由浏览器编码为%25
如果您使用Request.Url
它将解码,(逗号)但不是%(百分比)
所以Server.UrlDecode(“xyz”)解码除%(百分比)以外的所有字符,即上面的文件名中有“%25”