我的任务是上传文件......为此,要下载上传的代码,我需要文件位置,因为我的代码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
?
答案 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。