报错
springboot 内嵌的 tomcat替换jetty 9.4.44 后出现的问题。
jetty容器使用transferTo 上传问题会提示找不到文件。
ava.io.FileNotFoundException: C:\Users\XXX\AppData\Local\Temp\D:\workspace\1675246694267.xlsx(文件名、目录名或卷标语法不正确。)
跟进代码发现 是下面的调用逻辑
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.StandardMultipartFile#transferTo(java.io.File)
org.eclipse.jetty.util.MultiPartInputStreamParser.MultiPart#write(java.lang.String),这个方法中走到判断如下图:

由于 this._file 是 null,因此会执行 671行 ,给 this._file 拼接上 temp文件夹+我们要上传的目标文件夹,由于拼接了错误的文件路径导致找不到此文件,因此报错。
还发现 write方法定义是filename 结果调用方传入的是全路径。
解决方法
可以通过写了流的方式生成文件。我使用了 hutool 的包,所以直接使用:
File localFile = new File(fullFilename);
FileUtil.writeBytes(uploadFile.getBytes(),localFile);