临时上传位置\[/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT\]无效

新手上路,请多包涵

我正在使用 Spring Boot 1.5.13 版本。

我收到如下异常消息。

 Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT] is not valid

我在 Spring Github Issues 中发现了这个问题。 https://github.com/spring-projects/spring-boot/issues/9616

但我对此仍有疑问。

  1. 我没有在我的应用程序中使用文件上传的东西。但是日志说“无法解析多部分 servlet 请求”为什么会这样? (当我的应用程序使用 RestTemplate(Post 方法)时出现异常
  2. 为了解决这个异常,我重新启动了我的应用程序,但它没有立即工作。虽然我重新启动了我的应用程序,但它引用了不存在的 tomcat 目录。重启一天后,它工作了。我猜该目录被缓存在 Spring 的某个地方,或者..?

请帮帮我!

原文由 Sooyoung Park 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 587
1 个回答
  1. http POST 方法将使用这些临时位置来存储发布数据。
  2. 一些操作系统如centOS 会经常删除临时目录。因此,即使您设置了该位置的权限,一段时间后该目录也会被操作系统删除。重新启动后,临时目录会有所不同。

您可以在 application.yml 中设置多部分位置:

 spring:
  http:
    multipart:
      location: /data/upload_tmp

更新

根据 Vivek Sethi 的评论,上面的属性对我不起作用,但下面的属性对我不起作用。

 spring.servlet.multipart.location=/data/upload_tmp

原文由 Mavlarn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题