我无法获得所选文件的完整物理路径

时间:2010-03-20 12:47:22

标签: java gwt file-upload

我希望使用FileUpload使用GWT获取所选文件的完整路径。你能救我吗?

2 个答案:

答案 0 :(得分:3)

由于浏览器的安全性,无法从客户端获取文件路径 政策。你必须通过签名的java applet来实现它,或者从你的applet中获取它 servlet的。

fileUpload.getFilename可能会也可能不会返回完整路径。取决于浏览器

答案 1 :(得分:2)

你不需要它。想象一下,我是客户,你是服务器。我给你完整的文件路径“C:/ My Documents / passwords.txt”,你如何以编程方式访问文件内容?可能有new File("C:/My Documents/passwords.txt")?不,从逻辑上思考它,这不会起作用,因为我们都在物理上不同的机器上运行。有关完整路径的信息毫无价值

HTML文件上传实际上将文件的内容从客户端发送到服务器,通常只附带文件名。您只需要将InputStream作为FileItem#getInputStream()抓取内容,或者直接通过FileItem#write()将内容写入磁盘。根据{{​​3}}。

您可以通过FileUpload User Guide获取唯一的文件名,但是某些Web浏览器会发送完整的客户端磁盘文件系统路径,例如Internet Explorer和Opera。这是错误。您需要根据FileItem#getName()FilenameUtils#getName()修剪路径。

(顺便说一句,蓝色的所有代码都是可点击的并且指向Javadocs,我强烈建议你学习阅读/解释它们,它们提供你需要的所有信息。)