JSP 在Java Web应用程序中保存和提供图像

bq9c1y66  于 2022-12-07  发布在  Java
关注(0)|答案(1)|浏览(158)

我在为学校做一个电子商务应用,该应用程序有一个产品页面,显示每个产品的jpg图像。img文件夹在我的项目文件夹中(参见路径的代码),html中的链接只是./img/ + img name。图像和产品是通过管理面板中的一个表单动态添加的,该面板将图像和其他数据作为multipart/form-data提供给我的servlet。这是将图像保存在上述文件夹中的代码

Part filePart = request.getPart("slika");
                String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
                                           // Ugly absolute path
                File filePath = new File("C:\\Users\\dgudo\\OneDrive\\Desktop\\Faks\\Sesti semestar\\Internet Programerski alati\\Projekat\\CateringService\\web\\img");
                File file = new File(filePath, fileName);                

                try ( InputStream fileContent = filePart.getInputStream()) {
                    
                    Files.copy(fileContent, file.toPath(), StandardCopyOption.REPLACE_EXISTING);
                } catch (IOException ie) {
                    request.setAttribute("msg", ie.getMessage());
                }

这是可行的,但我使用的是本地机器唯一的绝对路径,而使用相对路径不行,它会告诉我找不到所需的资源,而使用System.getProperty("user.dir")返回运行web应用的Tomcat服务器的路径,在那里它显然找不到任何东西。
所以我有几个问题:
1.没有互联网接入(环境,我将介绍应用程序在大学)什么是最好的方式保存和服务的jpg的,
1.1我应该让它保持原样,并希望教授看不到路径(项目中有2000多行代码,很容易错过)?
1.2我是否应该将/img文件夹移动到System.getProperty("user.dir")指定的路径并在那里提供/保存服务?如果是,我如何将System.getProperty("user.dir")的结果设置为某个全局变量,以便在JSP代码中使用它?
1.在实际的生产环境中,映像从何处保存和提供?

  • 谢谢-谢谢
liwlm1x9

liwlm1x91#

问题一:
1.1:是一个好的方法,它只应该修改
1.2:如果您希望使用主目录,则应使用System.getProperty(“user.home”)而不是System.getProperty(“user.dir”)
通常情况下,当应用程序启动时,您应该在user.home目录中创建一个临时文件夹myapplicationimp”,在其中管理图像。
例如:如果您使用springframework在bean创建后立即检查并创建文件夹,则可以使用@PostConstruct(仍然是一个示例)。
问题二:
在生产中保存数据时,我们使用与您相同的方法,或者使用第三方环境来保存远程存储库(如google驱动器)或数据库。
我希望这会有所帮助

相关问题