Ao realizar o Upload do arquivos o método gravar da classe ProdutosController utiliza a classe FileSaver com o código descrito abaixo:
package br.com.casadocodigo.loja.infra;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
@Component
public class FileSaver {
@Autowired
private HttpServletRequest request;
public String write(String baseFolder, MultipartFile file) {
try {
String realPath = request.getServletContext().getRealPath("/" + baseFolder);
String path = realPath + "/" + file.getOriginalFilename();
file.transferTo(new File(path));
return baseFolder + "/" + file.getOriginalFilename();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
porém ao identificar o arquivo a ser transferido não consegue enviar para o servidor. gerando o erro:
java.lang.RuntimeException: java.io.IOException: java.io.FileNotFoundException: D:\bughunter\Desenv\Mobile\apache-tomcat-9.0.27\wtpwebapps\casadocodigo\arquivos-sumario\D:\Temp\Scanner_20200103.jpg (A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta)
br.com.casadocodigo.loja.infra.FileSaver.write(FileSaver.java:29)
Utiliza o ambiente de desenvolvimento no Windows 10, Eclipse 2019-06, Tomcat 9.0.27 e pesquisando já realizei as configurações no Eclipse para tomar o controle do TOMCAT.
Está faltando algum tratamento para o nome do arquivo ou algo assim ?