Bom dia galera!
Estou trabalhando com Spring e consegui implementar o upload de arquivos (achei bem simples!!!).
Porém quero evoluir um pouco, não quero mais salvar a imagem num diretório e o caminho dela no bd, quero salvar o binário dela direto no bd.
Vi nas documentações que o método multipartFile.getInputStream() pega o conteúdo do arquivo, esse é o conteúdo binário? como faço pra salvar esse conteúdo no bd (Postgresql)
Dei um sysout pra debugar e ele imprime: java.io.FileInputStream@1197971.
Quanto ao trabalhar com bd pra mim também sem problemas, quero só saber como armazernar o conteúdo binário numa variável pra salva-la no PostgreSql.
Salvar imagens e salvar pequenos vídeos é o mesmo processo?
Seguem os trachos classes que utilizei:
Model VideoUpload.java
public class VideoUpload {
private MultipartFile arquivo;
private int idVideo;
private String nomeVideo;
//Getters e Setters
public MultipartFile getFiles() {
return arquivo;
}
public void setFiles(MultipartFile files) {
this.arquivo = files;
}
public MultipartFile getArquivos() {
return arquivo;
}
public void setArquivos(MultipartFile arquivo) {
this.arquivo = arquivo;
}
//restante dos getters e stters...
}
Trecho do controller responsável pelo upload VideoController.java
@RequestMapping(value = "/video/savefiles", method = RequestMethod.POST)
public String uploadVideo(VideoUpload fileUpload,HttpServletRequest request) throws IllegalStateException, IOException {
//String saveDirectory = "c:/pasta_destino/";//Salva em diretório físico
String saveDirectory = request.getSession().getServletContext().getRealPath("")+"/media/";//Salva no diretório do projeto
MultipartFile arquivos = fileUpload.getFiles();
System.out.println(arquivos.getSize());
if (null != arquivos && arquivos.getSize() > 0) {
String fileName = arquivos.getOriginalFilename();
if (!"".equalsIgnoreCase(fileName)) {
arquivos.transferTo(new File(saveDirectory + fileName));
System.out.println(fileName);//AQUI IMPRIME O NOME DO ARQUIVO PRA TESTE, VOU IMPLEMENTAR OS RECURSOS DE BD AQUI
}
}
return "video/uploadfilesuccess";
}
Fico no aguardo.
Obrigado!