我是jsp和java的新手,我正在尝试在位于我的C:驱动器中的文件夹中显示jsp页面上的图像。但由于某种原因我没有让它显示无论我尝试什么...我现在有如下所示:
<img src="/argsdbPics/mazda.jpg" width = "90" height = "55" alt ="mazda"/>
这是什么原因以及如何处理?
答案 0 :(得分:4)
必须通过http://
网址提供(就像您通常在浏览器的地址栏中输入一样)。这就是webbrowser必须通过他们的URL单独下载图像,而不是在某种程度上生成JSP时必须自动包含它们的web服务器。
最简单的方法是编辑Tomcat的/conf/server.xml
并添加新的<Context>
元素以在任意文件夹上注册虚拟URL。假设图像文件夹位于C:\path\to\argsdbPics
,这是一个例子:
<Context docBase="/path/to/argsdbPics" path="/argsdbPics" />
这样,http://localhost:8080/argsdbPics/...
可以使用文件夹内容。因此,如果文件夹mazda.jpg
中有C:\path\to\argsdbPics
,则http://localhost:8080/argsdbPics/mazda.jpg
可以使用<img src="/argsdbPics/mazda.jpg" />
。这样下面的HTML尝试应该可以工作:
{{1}}
答案 1 :(得分:0)
如果您使用struts和jsp,我发现了一个很好的方法,没有任何tomcat更改,您可以实现ServletRequestAware接口并调用它:
String filePath = servletRequest.getRealPath("/");
答案 2 :(得分:0)
我做了一个棘手的解决方案..我知道这不是最好的,但它正在运作..
当我将照片上传到目录时,我用一个随机的Cypher密钥将它们加密,我给它们一个随机名称。密钥和名称存储在数据库中..
因此,当我想要显示一张照片时,我在一个临时文件夹中对其进行解密,然后我将其读取..并且当所需页面不再使用时我将其删除..
就像那样,即使你有了真正的路径,也无法使用加密文件。