文件上传异常:Failed to parse multipart servlet request;nested exception is java.io.IOEexception:The tem..

文章讲述了在将线上Springboot项目从Linux服务器迁移到Windows服务器后,由于默认上传位置改变导致文件上传失败的问题。作者通过排查发现解决方案是修改application.properties中的server.tomcat.basedir配置以指定文件上传目录。
摘要由CSDN通过智能技术生成

 如题:问题出现在部署环境的变化。线上项目一直是在linux服务下运行,切换到Windows服务器下运行之后,文件上传就出现如下问题了。

 通过排查发现是因为默认上传位置出现了变化导致的问题【此类问题都归类于找不到默认上传位置】

默认上传位置可以理解为传递到后端的文件默认保存的位置。如下:

	@RequestMapping("/upload")
	@ResponseBody
	public ResponseParams  upload(	
			@RequestParam("params") String params,
			@RequestParam(value="img",required=false) MultipartFile img,
			HttpServletRequest request,HttpServletResponse response) {
		return xxx;
	}

当有一个图片或文件进入controller时候,服务器会在临时位置存储它们。

【在linux系统中,Springboot项目通过java -jar命令启动服务的时候,会在系统的/tmp目录下生成一个tomcat的临时目录,上传文件时会先转成临时文件保存在这个文件夹下。】

到这里问题就很明显了,切换服务器导致了找不到该文件地址【其他情况,删除了Tmp等也会导致同样的问题】

知道了问题就很简单了,只要在application.properties里面加入默认文件上传目录即可:

注意改成你需要的目录

server.tomcat.basedir=/home/temp //linux 服务器
server.tomcat.basedir=c:\temp //win 服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值