文件路径不能占用空格后的字符串

时间:2014-08-06 12:58:45

标签: java html file servlets upload

我的任务是上传文件......为此,要下载上传的代码,我需要文件位置,因为我的代码href如下:

out.write("<a href=\"com/UploadDownloadFileServlet?
fileName="+fileItem.getName()+"\">Download "+fileItem.getName()+"</a>");

但我在浏览器的网址部分得到的是:

http://localhost:8090/FileUpload/com/com/UploadDownloadFileServlet?fileName=C:\Documents%20and%20Settings\All%20Users\Documents\My%20Pictures\Sample%20Pictures\Sunset.jpg

它显示HTTP 404错误...我哪里出错了?为什么空格为%20

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

String[] command = new String[] {
    "C:" +
    File.separator + 
    "Program Files (x86)" +
    File.separator + 
    "Mozilla firefox" + 
    File.separator + 
    "firefox.exe"    
};

答案 1 :(得分:1)

%20没有错。这是浏览器对URL进行编码的常规方式。它被称为&#34;百分比编码&#34;它在这里标准化:http://tools.ietf.org/html/rfc3986

通常当您使用Javascript设置位置并且使用PHP接收参数时,您不会感觉到编码,并且您不必关心。浏览器采用配额,空白,斜杠和其他讨厌的东西,它创建%20和其他,PHP创建百分比术语回到字符。如果你对此没有感觉,你必须改变为Vivek提到的POST方法。

您的网址似乎没有任何问题(两次/com/除外)。

我建议您手动将URL输入浏览器并逐步编辑,一次又一次地输入,直到错误消失。然后查看您已更改的内容并将更改恢复为您的代码。

答案 2 :(得分:0)

我只使用了POST方法...而且由于误解了servlet名称而导致错误。     out.write(“Download”+ fileItem.getName()+“”);这就是全部(在我包括包名之前)。所以现在我用文件路径中的空格清除+文件名没有导致任何错误。谢谢Peter和vivek。