asp中URL传参遇空格字符串被截断

来源:互联网 发布:java 动态脚本语言 编辑:程序博客网 时间:2024/06/06 00:44
最近在做网站上传文件删除的功能,出现了一个奇怪的情况,就是有的文件能正常删除,而有的文件却删除失败。我把两文件进行对比,发现是文件名的问题。一个文件的文件名有空格,而另一个没空格。一个是直接路劲访问,另一个是传递多个参数进行访问。
如下是连个文件文件名的对比图片↓

如下是正常不带参数的路径↓

如下是带多个参数的路径↓

从上面可看见,filename已经遇空格被截断了。后面的IPTable.xls已经看不见。So,传过去的值不正确,删除的时候查找不到这个文件。
但,这边的下载是没问题的。那就让我们看看2014-06-27 IPTable.xls这个文件的下载URL地址是怎么样的。如下↓

从上面可以看见,URL地址中,文件名这截的地址空格处被%20所替换。这就是我们解决问题的关键。原来在URL中%20就是代表空格的意思。
那好的。我们就在传递文件名这个参数的时候对RUL的参数进行重新编码。让他的空格能被URL识别。
如下是代码段:↓
Response.write("<a href=?foldinfo="&foldinfo&"&action=deletefile&filename="&replace(filenamecode," ","%20")&" onClick='return confirm(""确定要删除该文件吗?"")'>删除</a> ")
由上边,我们主要是filename这段代码。由上可知,我么用replace这个函数,手动把空格(即第二个参数),替换成了%20.这样,在传递参数的时候,文件名的空格也就自动转换成%20。这样,出现的URL传参遇空格字符串截断问题也就解决了。
让我们来看一下,被我们完善以后的URL地址:↓

地址正常。OK!


0 0
原创粉丝点击