【发布时间】:2017-03-07 00:57:56
【问题描述】:
我正在使用 commons-fileupload 使用类 DiskFileItemFactory 和 ServletFileUpload 从 POST 请求中读取图像文件。
谁能帮我看看上面哪些对象可以在线程之间重复使用和同时访问,或者必须为每个请求重新创建
提前致谢
【问题讨论】:
标签: java file-upload multipartform-data apache-commons-fileupload
我正在使用 commons-fileupload 使用类 DiskFileItemFactory 和 ServletFileUpload 从 POST 请求中读取图像文件。
谁能帮我看看上面哪些对象可以在线程之间重复使用和同时访问,或者必须为每个请求重新创建
提前致谢
【问题讨论】:
标签: java file-upload multipartform-data apache-commons-fileupload
在这个方向上找不到任何直线点。 但是找到了公共文件上传here的Streaming API。 由于它创建了一个 ServletFileUpload 对象,所以我认为这可能是一个更好的主意。
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();
【讨论】:
文档没有提供这方面的信息。可用示例表明,所有对象都将在每个请求上重新创建,除了FileCleaningTracker,在构建 DiskFileItemFactories 时建议使用静态方法,如https://commons.apache.org/proper/commons-fileupload/using.html 所示:
public static DiskFileItemFactory newDiskFileItemFactory(ServletContext context,
File repository) {
FileCleaningTracker fileCleaningTracker
= FileCleanerCleanup.getFileCleaningTracker(context);
DiskFileItemFactory factory
= new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD,
repository);
factory.setFileCleaningTracker(fileCleaningTracker);
return factory;
}
【讨论】: