Products
GG网络技术分享 2025-03-18 16:13 0
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan
有个在线上跑了一段时间的上传文件的程序报错,查了些资料,最终通过设置上传文件的临时路径解决此问题,在此与大家共享。
一、报错信息
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location[/tmp/tomcat.53876517222872.8078/work/Tomcat/localhost/ROOT] is not valid
二、问题解决思路增加上传的配置类(其中最主要是 factory.setLocation(uploadTmp))
/*
* Copyright (c) 2019. zhanghan_java@163.com All Rights Reserved.
* 项目名称:实战SpringBoot
* 类名称:MultipartConfig.java
* 创建人:张晗
* 联系方式:zhanghan_java@163.com
* 开源地址: https://github.com/dangnianchuntian/springboot
* 博客地址: https://blog.csdn.net/zhanghan18333611647
*/
package com.zhanghan.zhboot.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.MultipartConfigElement;
@Configuration
public class MultipartConfig {
@Value("${upload.maxFileSize}")
private String uploadMaxFileSize;
@Value("${upload.MaxRequestSize}")
private String uploadMaxRequestSize;
@Value("${upload.tmp}")
private String uploadTmp;
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize(DataSize.ofMegabytes(Long.parseLong(uploadMaxFileSize)));
factory.setMaxRequestSize(DataSize.ofMegabytes(Long.parseLong(uploadMaxRequestSize)));
factory.setLocation(uploadTmp);
return factory.createMultipartConfig();
}
@Bean
public CommonsMultipartResolver multipartResolver() {
return new CommonsMultipartResolver();
}
}三、项目地址及代码版本:
1、地址:https://github.com/dangnianchuntian/springboot
2、代码版本:1.4.0-Release
1、实战出真知;
2、不断积累。
经常有用户在WordPress主题安装过程中会遇到提示:“上传的文件尺寸超过php.ini中定义的upload_max_filesize值。”,如图所示:
图中的提示内容已经非常明确的告知了错误原因,就是网站的服务器PHP配置文件php.ini中upload_max_filesize值设置比较小导致的。一般发生此错误的服务器默认设置为2M,所以需要修改php.ini文件来修改配置。
(云)服务器/VPS
如果您网站是购买的云服务器,比如阿里云、腾讯云,则可以自己修改服务配置文件,也就是编辑php.ini文件,修改upload_max_filesize的值,具体改为多少可以根据自己正常上传文件大小来设置,比如8M。然后重启服务器。
修改的方法比较简单,不过大部分用户的问题在于php.ini文件的路径无法准确确定。如果是windows服务器,则可以直接用文件管理器搜索文件名即可。如果是linux系统,可以使用命令:find / -name php.ini
虚拟主机
虚拟主机一般都会有主机管理界面,正常都是有选项可以进行设置的,比如我们常见的阿里云/万网、西部数码的虚拟主机,都是有直接在管理面板设置,具体可以咨询您的主机服务商。阿里云设置如图:
Demand feedback