在我的网站上;用户可以上传他们的照片。我正在使用tomcat与apache,hibernate,jpa。
我希望将这些图像保存在我的ubuntu框中的某个位置,例如/var/ImagesUploaded
。使用Java我可以使用/var/ImagesUploaded
在目录java.io
中引用这些文件,但是如何在HTML页面上向用户显示这些图像?在HTML文件中,我们需要像<img src=''>
这样的标签,这个src与webapp相关。那么,我是否必须将用户上传的图像保留在我的webapp中!或者有更好的解决方案吗?
答案 0 :(得分:1)
将您的网络服务器配置为/var/imagesUploaded
的服务器文件(例如,/imguploads
),或者使用读取图像的脚本并将其输出给用户,并使用正确的标题。
答案 1 :(得分:1)
如何阅读应用程序中的图像,然后将它们作为base64编码流提供给用户?这样,您就不必将您的图像目录暴露给Web,并且可以有效地防止它被机器人抓取。
InputStream
读取
encodeBase64URLSafeString(IOUtils.toByteArray(yourImageAsInputStream);
<img src="data:image/jpeg;base64,encodedString">
This帖子也可能有用。
答案 2 :(得分:0)
您有几种选择:
如果您使用的是Tomcat 7,则可以使用&lt; Context&gt;中的“别名”功能。元素(http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Standard_Implementation)
您可以尝试在某些特殊路径上映射DefaultServlet,例如“/ uploads / *”,但要注意某些版本的Tomcat有一个DefaultServlet,当它未映射到“/”时基本上无法正常工作“
您可以编写自己的servlet来自己提供这些位,但最终会复制DefaultServlet的许多功能,并且可能会在健壮性类别中无法实现(例如,实现Range查询等)< / p>
请注意,如果您编写自己的servlet,则可以选择对授权访问某些资源执行基于用户的检查。也许你不希望谷歌可以访问你的整个上传目录。