今天我的Web应用程序中出现了MultipartException。我的Web应用程序基于spring boot。但我在处理MultipartException期间发现了这个问题。这是MultipartException信息:
org.springframework.web.multipart.MultipartException:无法解析 多部分servlet请求;嵌套异常是java.io.IOException:
临时上传位置 [C:\用户\ PC \应用程序数据\本地\ TEMP \ tomcat.3024954041352048338.8082 \工作\ Tomcat的\本地主机\ dutyManage] 无效
我配置了常见的异常处理程序,它将处理我的应用程序中的异常并返回json数据。
问题是http响应不包含类似“访问控制 - 允许 - 来源”的头部。所以我猜春季全球角色配置不起作用。这是响应头信息:
Connection:close
Content-Type:application/json;charset=UTF-8
Date:Wed, 29 Mar 2017 03:30:51 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
我故意在控制器的相同方法中抛出一个新的RuntimeException,cors配置工作,http响应包含' Access-Control-Allow-Origin'的头部。
我的春季全球角色配置是这样的:
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
// ...
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins(corsIps)
.allowedMethods(corsMethods)
.allowedHeaders(corsHeaders)
.maxAge(3600);
}
}
那么为什么cors配置不适用于发生MultipartException的情况?
答案 0 :(得分:0)
建议通过spring(或服务器)配置为临时存储指定自定义目录路径。
但是快速攻克方法是创建所提到的目录并提供读/写权限为
mkdir -p C:\Users\PC\AppData\Local\Temp\tomcat.3024954041352048338.8082\work\Tomcat\localhost\dutyManage
chmod 755 C:\Users\PC\AppData\Local\Temp\tomcat.3024954041352048338.8082\work\Tomcat\localhost\dutyManage
tomcat.xxxxxxxxxxxx.xxxx-每个服务器上都不同。 从服务器错误中使用此目录名称。