Java 如何永久存储用户';s文档服务器端?
我需要在服务器端的应用程序上存储用户的个人资料图片。我通过JSF(使用Primefaces)将其存储在文件系统中。但是,文档当前存储在tmp文件夹中,但在每次重新启动服务器后会被删除 我应该如何储存需要永久保存的文件Java 如何永久存储用户';s文档服务器端?,java,jsf,Java,Jsf,我需要在服务器端的应用程序上存储用户的个人资料图片。我通过JSF(使用Primefaces)将其存储在文件系统中。但是,文档当前存储在tmp文件夹中,但在每次重新启动服务器后会被删除 我应该如何储存需要永久保存的文件 我一直通过web.xml提供目录路径,如下所示: 我是否只需要将路径更改为服务器上的永久位置 (我正在使用Primefaces uploadFile组件来促进此上载) PrimeFaces文件上载筛选器 org.primefaces.webapp.filter.FileUplo
我一直通过web.xml提供目录路径,如下所示: 我是否只需要将路径更改为服务器上的永久位置 (我正在使用Primefaces uploadFile组件来促进此上载)
PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
阈值大小
51200
上传目录
/tmp
PrimeFaces文件上载筛选器
Facesservlet
将其存储在永久位置,而不是临时位置。为准备好的文件夹提供绝对磁盘文件系统路径,该文件夹具有足够的Java读/写权限。如有必要,可以将路径配置为系统属性或属性文件。例如。
作为系统属性(指定为VM参数):
-Dfiles.location=/path/to/files
然后,您可以通过以下方式找到该文件:
File file = new File(System.getProperty("files.location"), filename);
// ...
或者,您可以将其存储在DB中,但在DBs中存储二进制数据通常不受欢迎,因为它不可索引/可搜索/可链接,因此无法实现在DB中存储的唯一目的
另见:
InputStream
,并将其写入永久文件的OutputStream
。您可以使用File#createTempFile(前缀、后缀、文件夹)
确保文件名的唯一性。另请参见,例如和。
File file = new File(System.getProperty("files.location"), filename);
// ...