gpt4 book ai didi

java - 我可以从 Spring 启动应用程序将文件写入 CentOS usr/share/files/吗?

转载 作者:行者123 更新时间:2023-12-04 19:35:33 24 4
gpt4 key购买 nike

我正在编写一个文件上传 Spring boot 应用程序,除了路径之外的一切都很好。
我在Window上测试过,效果很好。但是当我将我的war包上传到tomcat时,上传看起来很成功。但我无法在我的服务器上的任何地方找到该文件。

private const val UPLOADED_FOLDER = "usr/share/nginx/html/"

@PostMapping("/upload.do")
@ResponseBody
fun singleFileUpload(@RequestParam("file") file: MultipartFile,
@RequestParam("path") path: String? = "",
redirectAttributes: RedirectAttributes): ResponseEntity<*> {
if (file.isEmpty) {
redirectAttributes.addFlashAttribute("message", "Please select a file to upload")
return ResponseEntity.ok("redirect:uploadStatus")
}
val pathRoot = UPLOADED_FOLDER + path
try { // Get the file and save it somewhere
val bytes = file.bytes
val path: Path =
Paths.get(pathRoot + File.separator + file.originalFilename)
Files.write(path, bytes)
redirectAttributes.addFlashAttribute("message",
"You successfully uploaded '" + file.originalFilename + "'")
} catch (e: IOException) {
e.printStackTrace()
}
fileCompressService.decompressTar(pathRoot, file.originalFilename)

return ResponseEntity.ok("redirect:uploadStatus")
}

最佳答案

您使用相对路径 usr/share/nginx/html ,这意味着您的文件被写入服务器工作目录的子目录中。这可能因服务器而异,但可能是 $CATALINA_BASE .使用绝对路径 /usr/share/nginx/html .
备注:在 UNIX 系统上,您可能会获得权限被拒绝,因为 /usr只能由 root 写入.可变数据通常应写入 /var .

关于java - 我可以从 Spring 启动应用程序将文件写入 CentOS usr/share/files/吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66684703/

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