springboot 上传文件路径设置

2023年4月24日 19点热度 0人点赞

小编今天带来了解决使用Spring Boot、Multipartfile上传文件路径错误问题的方法,一起来看看吧。

工具/原料

  • pc

方法/步骤

  1. 1

    首先,看源码中文件定义,相对路径,预期路径应该是项目路径/tmp/source/,但是报错确是一个系统临时文件路径(tomcat的)。

  2. 2

    其次,由于是transferTo方法报错,因此应该是该方法写入文件时报错,因此,我们跟入方法源码。public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpServletRequest {//中间代码省略。

  3. 3

    源码一目了然,使用Servlet3.0的支持的上传文件功能时,如果我们没有使用绝对路径的话,transferTo方法会在相对路径前添加一个location路径,即:file = new File(location, fileName);。当然,这也影响了SpringMVC的Multipartfile的使用。

  4. 4

    由于我们创建的File在项目路径/tmp/source/,而transferTo方法预期写入的文件路径为/tmp/tomcat.273391201583741210.8080/work/Tomcat/localhost/ROOT/tmp/source/,我们并没有创建该目录,因此会抛出异常。

  5. 5

    修改location的值,这个location可以理解为临时文件目录,我们可以通过配置location的值,使其指向我们的项目路径,这样就解决了我们遇到的问题。

    END

注意事项

  • 可咨询专业人士。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论