首页 >数据库 >mysql教程 >如何在不使用数据库的情况下在 Java Web 服务器上高效地存储和检索图像?

如何在不使用数据库的情况下在 Java Web 服务器上高效地存储和检索图像?

Patricia Arquette
Patricia Arquette原创
2024-11-17 17:05:02486浏览

How to Efficiently Store and Retrieve Images on a Java Web Server Without Using a Database?

如何在 Java Web 服务器上存储和检索图像:解决方案

在本文中,我们将解决以下方面的常见挑战: Web 应用程序:如何在 Java Web 服务器上有效地存储和检索图像。我们将提供一个全面的解决方案来解决原始问题中提出的问题。

理解查询

问题询问:图像应该存储在哪里以允许在服务器上的 XHTML 文件中高效检索和显示,而不使用数据库作为存储方法?

推荐解决方案

理想的解决方案取决于对服务器配置的控制级别。如果可能,建议在Tomcat webapps文件夹之外配置固定路径,例如/var/webapp/upload。该路径可以设置为 VM 参数或环境变量,以确保无需修改代码即可进行编程检索。

实现解决方案

例如,当使用 VM 参数时 - dupload.location=/var/webapp/upload,您可以按如下方式完成上传:

Path folder = Paths.get(System.getProperty("upload.location"));
String filename = FilenameUtils.getBaseName(uploadedFile.getName()); 
String extension = FilenameUtils.getExtension(uploadedFile.getName());
Path file = Files.createTempFile(folder, filename + "-"", "." + extension);

try (InputStream input = uploadedFile.getInputStream()) {
    Files.copy(input, file, StandardCopyOption.REPLACE_EXISTING);
}

String uploadedFileName = file.getFileName().toString();
// Now store it in the DB.

用于服务文件,将上传位置作为单独的上下文添加到 Tomcat 是理想的选择。例如:

<Context docBase="/var/webapp/upload" path="/uploads" />

此设置允许通过 http://example.com/uploads/foo-123456.ext 等 URL 直接访问文件。

替代选项

如果服务器配置有限,请考虑使用数据库进行存储或利用亚马逊等第三方主机S3.

其他资源

  • [如何在 File 类中提供相对路径来上传任何内容文件?](https://stackoverflow.com/questions/3344856/how-to-provide-relative-path-in-file-class-to-upload-any-file)
  • [可靠数据服务](https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Reliable_Data_Serving)

结论

实现推荐的解决方案提供了一种在 Java Web 服务器上存储和检索图像的强大方法,从而能够在应用程序中进行高效的文件管理和显示接口。

以上是如何在不使用数据库的情况下在 Java Web 服务器上高效地存储和检索图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn