到目前为止,我确实将图像保存到webapp目录及其到数据库的路径中。
但现在我正在尝试将图像保存在webapp之外,这样如果我部署新的war文件,那么我的旧files
文件夹将不会被删除。
从我的下面代码我的图像文件正确保存到webapp之外的指定文件夹中,但我不知道如何将该图像检索到我的jsp页面。
我试过这个
<img src="www.myproject.com/struts2project/files/smile.jpg/>"
但这是错误的。我没有让我的图像显示在我的jsp页面中。
下面的代码可以很好地将图像上传到绝对路径,但我的问题是如何检索该图像?
`fileSystemPath= "/files";
try{
File destFile = new File(fileSystemPath, thempicFileName);
FileUtils.copyFile(thempic, destFile);
String path=fileSystemPath+"/"+thempicFileName;
theme=dao.getThemeById(themId);
theme.setThemeScreenshot(path);
theme.setThemeName(theme.getThemeName());
theme.setThemeCaption(theme.getThemeCaption());
dao.saveOrUpdateTheme(theme);
}catch(IOException e){
e.printStackTrace();
return INPUT;
}`
请帮助我...
我希望我能清楚自己需要什么,如果我不是,请告诉我,我会尝试用其他方式解释。
答案 0 :(得分:1)
正如你所说。 。 。 this question描述了您需要做的事情。我想你需要知道的是如何用struts 2来实现这一目标。这就是正在发生的事情。
在你的标签中:
该网址被路由到您的struts 2应用程序。正确?上下文是“struts2project” 引用问题提供的解决方案之一是使用Tomcat提供静态请求的能力,并配置tomcat以了解保存图像的其他文档根目录。我认为这是一个很好的解决方案。
如果你想将它保留在struts2中,我认为你最好的选择是使用一个专用的“来自其他地方的图像流”动作来获得一个InputStream到图像,然后使用Struts2 {{3}结果类型。该结果类型允许您指定adhoc InputStream。它还可以帮助您设置适当的标题。请注意,该文档页面上的标题值用于下载文件,因此您不需要这些值。我认为,他们会强制浏览器打开图像的另存为对话框。
答案 1 :(得分:0)
您已经在使用绝对路径,只需使用Web应用程序之外的位置:
String destinationDir = "/path/to/my/directory/";
File file = new File(destinationDir + item.getName());