gpt4 book ai didi

java - 如何在服务器端永久保存用户的文档?

转载 作者:行者123 更新时间:2023-12-01 15:40:25 25 4
gpt4 key购买 nike

我需要在服务器端的应用程序中存储用户的个人资料图片。我通过 JSF(使用 Primefaces)将其存储在文件系统中。然而,这些文档当前存储在 tmp 文件夹中,但在每次服务器重新启动后都会被删除。

需要永久保存的文件该如何保存?

<小时/>

我一直通过 web.xml 提供目录路径,如下所示:我是否只需要更改服务器上永久位置的路径?

(我正在使用 Primefaces uploadFile 组件来促进此上传)

<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>51200</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>/tmp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

最佳答案

将其存储在永久位置而不是临时位置。提供一个指向已准备好的文件夹的绝对磁盘文件系统路径,该文件夹具有足够的 Java 读/写权限。如果需要,您可以将路径配置为系统属性或通过属性文件。例如。作为系统属性(您指定为 VM 参数):

-Dfiles.location=/path/to/files

然后您可以通过以下方式找到该文件:

File file = new File(System.getProperty("files.location"), filename);
// ...

或者,您可以将其存储在数据库中,但是将二进制数据存储在数据库中通常会受到反对,因为它不可索引/可搜索/可链接,从而违背了存储在数据库中的唯一目的。

另请参阅:

关于java - 如何在服务器端永久保存用户的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com