我的问题是我知道服务器应用程序可以访问存储在服务器上的数据,但无法访问存储在客户端计算机上的数据,因为这是一个安全问题,浏览器不允许这样做。但是对于localHost(当我的本地PC充当服务器时)我应该能够从我的PC(运行应用程序的本地PC)访问文件。但那并没有发生。 为什么我无法通过localhost从本地C:\驱动器访问简单的映像文件。我使用的URL是file:/// c:/image.png但是如果我将这个图像存储在tomcat的主目录下我能够访问它的任何地方。为什么? 我用它作为<'img src =“file:/// c:/image.png> 谢谢你的任何考虑..
答案 0 :(得分:0)
问题出在这一部分:
我使用的URL是file:/// c:/image.png,但如果我存储任何此图像 在tomcat的主目录下我可以访问它。
如果要在将文件放入Tomcat的document-root后通过Tomcat访问该文件,则使用的URL(假设您没有更改默认端口设置)是:
http://localhost:8080/image.png
需要通过Web服务器访问由Web服务器托管的内容。 file://
URL绕过任何类型的服务器,并且基本上指示浏览器直接查看本地文件系统。所以如果你这样做也应该有用:
file:///C:/path/to/tomcat/home/image.png
但在这种情况下,你不通过Tomcat。您只需将浏览器指向本地文件系统中的tomcat文件夹即可。
编辑:我认为许多浏览器不会在托管文档中的标记中允许file://
个网址。这样做可能会导致出现安全漏洞,就好像您可以猜到某人的本地文件系统上的图像文件的名称,然后您可以发布一个网页,使其看起来好像您的服务器以某种方式抓住了他们的个人图像文件。