在我的网站上;用户可以上传他们的照片。我正在将 tomcat 与 apache、hibernate、jpa 一起使用。
我更愿意将这些图像保存在某个位置,例如 /var/ImagesUploaded
在我的 ubuntu 盒子上。使用 Java,我可以在目录 /var/ImagesUploaded
中引用这些文件使用 java.io
但是我如何在 HTML 页面上向用户显示这些图像呢?在 HTML 文件上,我们需要像 <img src=''>
这样的标签这个 src 是相对于 webapp 的。那么,是不是我必须只将用户上传的图像保存在我的网络应用程序中!或者有更好的解决方案吗?
最佳答案
如何在您的应用程序中读取图像,然后将它们作为 base64 编码流提供给您的用户?这样,您就不必将您的图片目录暴露在网络上,并且可以有效地防止它被机器人抓取。
- 以
InputStream
形式读取文件在您的应用程序中使用 java.io - 使用 Apache Commons Codec 将其转换为 Base64 .
encodeBase64URLSafeString(IOUtils.toByteArray(yourImageAsInputStream);
- 在您的响应 HTML 中,将图像嵌入为
<img src="data:image/jpeg;base64,encodedString">
This在 SO 上发帖也可能有用。
关于java - 我应该将用户上传的文件保存在服务器的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760191/