【发布时间】:2020-11-04 05:56:11
【问题描述】:
当用户上传图像时,tomcat webapp 在“/var/www/example.com/uploads”中创建文件,以便 apache 可以提供图像。但是,tomcat 组/用户创建了该文件,因此无法通过 example.com/uploads/image.jpg 访问它,除非我手动更改读取权限,否则该文件不再被禁止。但是,每个文件都是在没有读取权限的情况下创建的。我不熟悉 ubuntu,我不知道是否需要更改 java servlet 中的某些内容或更改文件夹/组/用户。任何帮助将不胜感激。
-rw-r----- 1 tomcat tomcat 120264 Jul 14 19:26 second-image.jpg
-rw-r--r-- 1 tomcat tomcat 172853 Jul 14 19:05 image.png
编辑: 该文件作为多部分配置表单数据提交。在检查完类型、大小等后,将其写入系统简单如下:
Path imageDir = Path.of("/var/www/example.com/uploads");
Path imageFile = Files.createFile(imageDir.resolve(fileName).toAbsolutePath());
part.write(imageFile.toString());
【问题讨论】:
-
另外,检查目录的权限。除非目录已经执行,否则文件不会加载到网页中。
-
请发布编写这些文件的应用程序代码的最小示例。它可以通过多种方式完成,使用提供的库或 3rd-party 代码,所有这些都会影响潜在的答案。
-
好的,刚刚更新了帖子。
-
另外,在我将 PC 移到服务器之前,这一切都在我的 PC 上运行。当然是windows了,文件权限不一样,搬到服务器上的时候就苦练了一番。