代码先行
文件上传,服务器异步处理文件
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public String uploadFile(MultipartFile file){
System.out.println("request start: file.isEmpty="+file.isEmpty());
new Thread(()->{
try {
Thread.sleep(1000);
// why file is empty?
System.out.println("detail request: file.isEmpty="+file.isEmpty());
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
System.out.println("request end: file.isEmpty="+file.isEmpty());
return "{"msg":"success!"}";
}
结果输出:
request start: file.isEmpty=false
request end: file.isEmpty=false
detail request: file.isEmpty=true
原因:
response之后,会clear临时数据(包含临时文件),所以异步出去的逻辑在response之后去读文件,将会读不到文件。
本文由 cuitpanfei 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2021/11/23 17:55