Venho pesquisando sobre o assunto, mas nao estou chegando a nada concreto.
Estou precisando fazer Upload de um avatar em meu formulario. Preciso armazenar isso no meu BD (SQL Server 2008) e futuramente, quando o usuario acessar uma certa pagina, eu carregar esta imagem.
Pelo que entendo a melhor forma, é gerar um vetor de bytes da Imagem e colocar num campo do BD.
Estou certo? Outra Pergunta: Alguem tem um exemplo do Upload e Download deste cenario, ou algo parecido, mas que armazene no banco?
Estou usando Apache Tomcat 6.0, com SQL Server 2008 e Eclipse como IDE.
É justamente o que eu estou tentando resolver, na parte de upload, mas não consigo gravar no banco…
Mas eu fiz diferente, segui esse exemplo nesse link
Aí tem que o caminho da imagem no banco, gerar um vetor de bytes não sei se resolveria…
espero ter ajudado
Abraço
T
thiagoads
Ah, só lembrando, estou usando NetBeans
jaissonduarte
ok falei com um cara que trabalha no serpro sobre isso mesmo
armazenagem de dados grandes em banco de dados e ele me passou isso http://pgdocptbr.sourceforge.net/pg80/lo-funcs.html
já que o banco deve tratar os dados mas demora demais é Aconselhável por performance salvar no servidor
T
thiagoads
jaissonduarte:
ok falei com um cara que trabalha no serpro sobre isso mesmo
armazenagem de dados grandes em banco de dados e ele me passou isso http://pgdocptbr.sourceforge.net/pg80/lo-funcs.html
já que o banco deve tratar os dados mas demora demais é Aconselhável por performance salvar no servidor
Não entendi muito bem como funciona isso…
Acho também que não é bem aquilo que estou precisando
Mas de qualquer forma obrigado!
fabio.lino
É para mim nao se aplica sua ideia Jaisson!
Ainda estou na procura de algo mais claro. Esta ideia usa Postgree. Eu estou usando SQL Server 2k8.
Thiago, eu sei como coloca no banco mas nao sei o processo como funciona, no java.
ArthurTurtle
Cara eu ficaria com as ideias ai de cima:
1º Envia a imagem para o servidor onde sua aplicação esta rodando
2º Salva o caminho da imagem no banco de dados
Ai quando você for mostra a imagem é so vc colocar o caminho dela ao inves de pegar esse array de bytes e convertelo para uma imagem mesmo, eu fiz um esquema desse em um projeto e eu fazia/faço assim, o usuario seleciona uma imagem:
Detalhe, eu usei JSF + Primefaces
Isso vai mostrar na tela do usuario uma janela para escolher o arquivo, bem simples depois eu envio esse arquivo via ftp:
privateStringcaminhoFtp="pasta";privateFTPClientftp=newFTPClient();publicvoidhandleFileUpload(FileUploadEventevent)throwsIOException{try{//pego um InputStream do arquivo que foi "upado" para o serverInputStreamis=event.getFile().getInputstream();abrirConexao();ftp.setFileType(FTPClient.BINARY_FILE_TYPE);ftp.storeFile(caminhoFtp+event.getFile().getFileName(),is);ftp.disconnect();FacesMessagemsg=newFacesMessage("Enviado!",event.getFile().getFileName()+" foi enviado.");FacesContext.getCurrentInstance().addMessage(null,msg);//aqui vc poderia chamar o seu DAO algo assimArquivoDAOdao=newArquivoDAO();dao.salva(newArquivo(event.getFile().getFileName()));//assim vc ja estaria salvando o arquivo no servidor}catch(Exceptione){// TODO: handle exceptione.printStackTrace();}}publicvoidabrirConexao(){try{ftp.connect("oSeuFTP");if(FTPReply.isPositiveCompletion(ftp.getReplyCode())){ftp.login("User","Password");}else{ftp.disconnect();FacesContext.getCurrentInstance().addMessage(null,newFacesMessage(FacesMessage.SEVERITY_WARN,"Conexão recusada!",""));}}catch(Exceptione){// TODO: handle exceptione.printStackTrace();}}