0

到目前为止,我确实将图像保存到 webapp 目录中,并将其路径保存到数据库中。

但现在我试图将图像保存在 webapp 之外,这样如果我部署新的战争文件,那么我的旧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;
         }`

请帮助我...

我希望我清楚我需要什么,如果我不是,请告诉我,我会尝试以另一种方式解释。

4

2 回答 2

1

正如你所说 。. . 这个问题描述了你需要做什么。我想您需要知道的是如何使用 struts 2 最好地实现这一点。这就是发生的事情。

在您的标签中:

该 url 被路由到您的 struts 2 应用程序。正确的?上下文是“struts2project”。
引用问题提供的解决方案之一是使用 Tomcat 服务静态请求的能力并配置 tomcat 以了解保存图像的其他文档根目录。我认为这是一个很好的解决方案。

如果您想将其保留在 struts2 中,我认为您最好的选择是使用专用的“来自其他地方的图像流”操作,该操作将 InputStream 获取到图像,然后使用 Struts2 Stream Result结果类型。该结果类型允许您指定一个临时 InputStream。它还可以帮助您设置适当的标题。请注意,该文档页面上的标题值用于下载文件,因此您不需要这些值。我认为他们会强制浏览器打开图像的另存为对话框。

于 2012-12-17T15:30:05.340 回答
0

您已经在使用绝对路径,只需使用 Web 应用程序之外的位置:

String destinationDir = "/path/to/my/directory/";
File file = new File(destinationDir + item.getName());
于 2012-12-17T14:33:18.743 回答