这是一个关于在 Windows 7 平台上使用本地 java 服务器测试文件上传功能的问题。由于问题随着 Marko 的输入而演变,因此我对其进行了编辑,以便遇到相同挑战的人不会在演变细节上浪费时间并更快地得出结论。
挑战是将上传的文件定向到 WAR 结构之外的文件夹并从那里成功读取。例如:上传一张图片c:/tmp/
,然后重定向到显示该图片的确认页面<img src="c:/tmp/test.jpg" />
。上传成功,但图像不会显示。根据 Marko 的输入,这是有道理的,因为位于 localhost 的浏览器将拒绝使用c:
. 也许这些是类似于那些我们无法设置默认路径的文件输入控制的安全考虑......
以下标记将在本地创建的 .html 文件中工作,但当粘贴到 jsp 中时,它将不起作用。不同的是浏览器使用localhost来访问jsp。
<img src="c:/tmp/test.jpg" />
解决方案
我认为 Marko 的回答几乎定义了需要做什么。虽然我没有采用这种方法,但这显然是更好的方法,我会接受它作为答案。谢谢,马尔科!
对于那些不想费心安装 Web 服务器并愿意忍受一些 hack 的人,这就是我所做的。同样,我不想将文件上传到我的 WAR 结构中,因为我需要记住在部署到服务器之前清除该文件夹。但是该上传文件夹仍然需要可访问,因此我只是创建了另一个虚拟项目并将该上传文件夹放在其 WebContent 下。这适用于我的本地测试。唯一麻烦的是上传文件后,我需要在 Eclipse 中刷新虚拟项目的 WebContent。
config.properties
#for uploading files
fileUploadDirectory=C:/javawork/modelsite/tmp/WebContent
#for building html links
publicFileServicePrefix=http://localhost:8080/tmp
<img src="http://localhost:8080/tmp/test.jpg" /> // this works - tmp is the name of my dummy project.