"不允许加载本地资源:file:/// C:.... jpg"Java EE Tomcat

K.A*_*che 41 java storage tomcat

我正在尝试在存储良好后从我的文件系统中检索图片(而不是将其放入数据库中,我将其复制到光盘并将路径放到数据库中)

  1. 我已将图片存储到c:\ images \文件夹,并假设完整路径的名称为c:\ images\mypic.jpg
  2. 当我尝试检索它时<img src="c:\images\mypic.jps">,使用一些java代码 设置img src属性
  3. 在浏览器控制台中我发现了这个错误 Not allowed to load local resource: file:///C://images//mypic.jpg

问题:如何解决这些路径问题?我应该在哪里存储图片?我应该从哪里取回它们?

T.G*_*T.G 20

发送标记<img src="c:\images\mypic.jpg">会导致用户浏览器从他的文件系统访问图像.如果你必须将图像存储在位于c:\images我的文件夹中,我建议创建一个像images.jsp这样的servlet,作为参数获取文件的名称,然后将servlet响应内容设置为image/jpg,然后从服务器加载图像的字节位置并将其作出回应.

但是你用什么来创建你的应用程序?它是纯servlet吗?弹簧?JSF?

在这里你可以找到一些关于如何做的信息.


小智 11

在Chrome中,您应该能够通过运行时标志--allow-file-access-from-files来允许此功能

但是,看起来当前版本的Chrome(37,38)存在问题,除非您还传递运行时标志--disable-web-security,否则这不起作用

这是一个不可接受的解决方案,除了可能作为短期解决方案,但它已被确定为一个问题:https://code.google.com/p/chromium/issues/detail? id = 379206