Pessoal tenho que gravar arquivos em um campo no banco de dados, o mesmo é enviado via JSp e tenho q gravalo, alguma sugestão? Não adianta pra ler apis, tou presisando pra ontem queria um exemplo proto.
Quem Puder obrigado!!!
Pessoal tenho que gravar arquivos em um campo no banco de dados, o mesmo é enviado via JSp e tenho q gravalo, alguma sugestão? Não adianta pra ler apis, tou presisando pra ontem queria um exemplo proto.
Quem Puder obrigado!!!
Você poderia fazer o Upload desse arquivo e salvá-lo em um diretório e no banco de dados você só grava o caminho/nome desse arquivo
Beleza, mas como eu faço mesmo isso?
Voce ja consegue fazer upload dos arquivos? caso negativo, de uma olhda no http://jakarta.apache.org.commons/fileupload. Eh bem simples de usar, e no site do projeto contem exemplos de codigo.
Rafael
Rafael, vocês dizem que esse comons fileupload é simples de usar. Pois não é isso que eu tô vendo aqui, estou há mais de duas semanas tentando apenas pegar o nome do arquivo enviado pelo form, só me retorna exceção cara.
Já fiz de tudo nesse mundo, coloquei os jar’s do filepload na pasta /WEB-INF/lib (mesmo lugar onde tá a minha classe de conexão com o oracle que funciona) criei uma biblioteca com eles e adicionei no meu projeto pra que o netbeans encontre as classes. Ele builda na boa, mas em execução na hora que eu chego na declaração do List, me retorna exceção.
Qual a mágica que tem que fazer pra isso funcionar e parar de dar exceção, pra funcionar no tomcat, pois até onde eu conheço de lógica no netbeans já tá tudo certo, o problema é o tomcat que me parece que não tá encontrando as classes que estão na pasta li dentro da WEB-INF.
[]'s.
Eu também não estou vendo nada de simples nesse fileupload! Estou perdido nele e não encontro nada que possa seguir de orientação para essa tarefa! :?
Alguém, por favor, pode nos ajudar de verdade?
Tente então o Upload Bean
Documentação
Pois é mrapha, é muito complicado mesmo esse fileupload, pô eu acho assim; se é pra usar bibliotecas de terceiros, é pra trabalhar menos e ter menos dor de cabeça e não toda essa apurrinhação que esse jakarta causa! Cara eu encontrei um tal de oreilly upload que é bom, objetivo e fui a única forma que eu consegui ver um upload funcionar em servlets, vale apena dar uma olhada,
[]'s.
Eu uso o commons fileupload numa boa…
O que tem de tão complicado?
O que tem de tão complicado é que ele só dá excessão. Só apurrinhação amigo!
Veja se ajuda:
// verifica se é multipart
if ( ServletFileUpload.isMultipartContent( request ) ) {
// cria uma fábrica para items baseados em disco
DiskFileItemFactory factory = new DiskFileItemFactory( 5242880,
new File( getServletContext().getRealPath( "/" ) + "/temp" ) );
// cria um novo manipulador de arquivos enviados
ServletFileUpload upload = new ServletFileUpload( factory );
// configura o tamanho total do request
upload.setSizeMax( 5262880 );
List items = null;
Map< String, String > mapa = null;
try {
// analisa o request
items = upload.parseRequest( request );
// obtém o mapa com os dados
mapa = Util.getFieldValues( items );
} catch ( FileUploadException exc ) {
throw new ServletException( exc.getMessage() );
}
//processa os itens do map que são os campos normais do formulário
//......
// obtém e salva o arquivo
for ( FileItem item : items ) {
// se for arquivo
if ( !item.isFormField() ) {
File arquivoEnviado = new File(
getServletContext().getRealPath( "/" ) + "/arquivos/" + o.getLink() ); // o.getLink nesse caso retorna o nome do arquivo
try {
item.write( arquivoEnviado );
} catch ( Exception exc ) {
throw new ServletException( exc.getMessage() );
}
}
}
}
public class Util {
// cria um mapa com apenas os campos de formulário normais
public static Map< String, String > getFieldValues( List lista ) {
HashMap< String, String > mapa = new HashMap< String, String >();
for ( int i = 0; i < lista.size(); i++ ) {
FileItem item = ( FileItem ) lista.get( i );
if ( item.isFormField() )
mapa.put( item.getFieldName(), item.getString() );
}
return mapa;
}
}
[]´s
Cara o problema, pelo menos o meu, não é script não e sim a biblioteca. Mas valeu a ajuda de qualquer forma, é construtiva e com certeza vai ajudar a alguém que esteja disposto a usar o fileupload,
Abraços.
Exemplo Prático de utilização da biblioteca Jakarta FileUpload
http://www.guj.com.br/posts/list/0/114496.java
package br.com.devmedia.jsfupload;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.apache.myfaces.custom.fileupload.UploadedFile;
/**
*
@author Wesllhey
*/
@ManagedBean
@SessionScoped
public class FileUploadBean {
private UploadedFile arquivo;
private String imagem;
public String processarArquivo() {
int posicao = arquivo.getName().lastIndexOf("\\");
System.out.println(arquivo.getName().substring(posicao + 1));
imagem = arquivo.getName();
try {
OutputStream output = new FileOutputStream("c:\\TEMP\\"
+ arquivo.getName().substring(posicao + 1));
output.write(arquivo.getBytes());
output.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public String visualizar(){
return "visualizar";
}
public String Imagem() {
return null;
}
public UploadedFile getArquivo() {
return arquivo;
}
public void setArquivo(UploadedFile arquivo) {
this.arquivo = arquivo;
}
}
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@taglib prefix=“t” uri=“http://myfaces.apache.org/tomahawk”%>
<%–
This file is an entry point for JavaServer Faces application.
–%>
<f:view>
<h:commandButton value="Enviar"action="#{FileUploadBean.processarArquivo}" />
<h:commandButton value="Visualizar" action="#{FileUploadBean.processarArquivo}"/>
</h:form>