Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

java.io.FileNotFoundException:

Galera,

Estou recebendo

java.io.FileNotFoundException: /Users/daniele/Desktop/WorkSpace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/roupasintimas/arquivos/IMG_1569.jpg (No such file or directory)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
    at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:394)
    at org.apache.catalina.core.ApplicationPart.write(ApplicationPart.java:120)
@RequestMapping(value="/produtos", method=RequestMethod.POST) //vamos mapea-lo para produtos

    public ModelAndView gravar(MultipartFile sumario,  @Valid Produto produto, BindingResult result, RedirectAttributes redirectAttributes){ //colocar na ordem


        //MultipartFile serve pra baixar arquivos



            if (result.hasErrors()){ //as informações de erro ficam nesse hasError
                return form(produto);
            }

            String path =FileSaver.write("arquivos", sumario);
            produto.setSumarioPath(path);

            produtodao.gravar(produto);
import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

@Component //é uma classe que criamos
public class FileSaver {

    @Autowired //pede pra injetar
    private HttpServletRequest request;

    public String write(String baseFolder, MultipartFile file){ //fazer a tranferencia de arquivo

        try{
        String realPath = request.getServletContext().getRealPath("/"+baseFolder);     //vai pegar o caminho real
        String path= realPath + "/" + file.getOriginalFilename();
        file.transferTo(new File(path));
        return path;
        }
        catch(IllegalStateException | IOException e) {

            throw new RuntimeException(e);
        }


    }

}
<form:form action="${s:mvcUrl('PC#gravar').build()}" method="post" commandName="produto" enctype="multipart/form-data">
<div>
       <label>Sumario</label>
       <input name="sumario" type="file">
     </div>

Já criei a pastar arquivo dentro de webapp, fora e continua dando o mesmo problema...alguem pode me ajudar?

1 resposta
solução!

Eu ja achei o problema....no curso ele comente o erro de colocar um "/" no String path= realPath + "/" file.getOriginalFilename(); ...é só tirar

public String write(String baseFolder, MultipartFile file){ //fazer a tranferencia de arquivo



        try{
        String realPath = request.getServletContext().getRealPath("/"+baseFolder);     //vai pegar o caminho real
        String path= realPath + file.getOriginalFilename();
        file.transferTo(new File(path));
        return path;
        }
        catch(IllegalStateException | IOException e) {

            throw new RuntimeException(e);
        }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software