从tomcat中的临时目录访问临时映像(liferay)

时间:2013-12-03 16:09:34

标签: tomcat liferay

我从一个接口获得一个图像(base64解码),这将被编码,我尝试在tomcat的临时文件夹中创建一个临时图像。是否有可能通过temp文件夹中的url访问这些文件?或者这只是一个坏主意? 我创建临时文件的原因是,我不想管理文件的删除等等。

File iconFile = File.createTempFile("ppoiIcons", currentIcon.getIconFileName()+".jpg");
FileUtil.write(iconFile, decodeBytes(currentIcon.getIconAttachment()));
System.out.println("iconFilePath: " + iconFile.getAbsolutePath());
currentIcon.setIconFileName(iconFile.getAbsolutePath());

创建临时文件后,我想通过html img-tag引用到jsp页面。 像这样:

<img src="localhost:8080/temp/tempIcon.jpg">

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

当然:创建一个DownloadServlet,ImageServlet或类似的东西并将其绑定到url / temp / *

您的不错选择是将该图像放入临时文件夹,而不是放入实际Web应用程序的目录中。坏消息是,没有appserver自动方式来为您选择上网的临时文件夹提供服务。好吧 - 坏消息?实际上并非如此:由于这种限制,您可以安全地使用多种攻击媒介,例如:有人可能上传一个名为“attack.jsp”的图像 - 这可能最终被解释/执行serveride,这是你不想要的。此外,在重新部署应用程序时,您将丢失上传到您的网络应用程序的所有文件。

这样的下载Servlet通常很简单,你很可能通过谷歌搜索来找到几个样本安装。根据图像的大小,您可能希望实现缓存,部分下载或其他功能,但纯下载应该非常简单。