Duvida de upload de arquivos

2 respostas
V

Pessoal estou precisando de ajuda para fazer um upload de arquivo.

Já peguei uns exemplos de codigos que utilizam o import "org.apache.commons.fileupload.*"

<%@ page   
import="java.io.*"    
import="java.util.*"    
import="org.apache.commons.fileupload.*"  
contentType="text/plain"  
%><%   
boolean isMultipart = FileUpload.isMultipartContent(request);
if (isMultipart) {
// Create a new file upload handler
    DiskFileUpload upload = new DiskFileUpload();
    
// Set upload parameters
    upload.setSizeMax(50*1024*1024); //50Mb
    upload.setRepositoryPath("c:/temp");
    
// Parse the request
    List items = upload.parseRequest(request);
    
    Iterator it = items.iterator();
    while (it.hasNext()) {
        FileItem fitem = (FileItem) it.next();
        if (!fitem.isFormField()) {
            fitem.write(new File("C:/upload/" + fitem.getSize() + ".txt"));
%><%= fitem.getName() %> - <%= fitem.getSize() %> bytes   
<%   
        }
    }
}   
%>
Não consigo salvar o arquivo com o nome original dele nem quando tento usar o metodo fitem.getName().
fitem.write(new File("C:/upload/" + fitem.getSize() + ".txt"));
Acho que esse metodo traz o caminho inteiro do arquivo desde c:/diretorio1/diretoria2/nomedoarquivo.txt. Alguem sabe como posso conseguir somente o nome do arquivo e o tipo ? exemplo: nomedoarquivo.txt

Valeu!

Rodrigo Vodopives

2 Respostas

V

Alguem sabe como gravar o arquivo no Banco? Estou usando MySQL.

E

E preciso transformar o arquivo em array de byte (bybte[]), e salvar em um campo blob no banco de dados.... segue abaixo um metodo que transforma um objeto qualquer em um byte[];

public byte[] adicionaArquivoByte(Object object) {  
         ByteArrayOutputStream baos = null;  
         ObjectOutputStream out = null;  
         byte[] byteObject = null;  
   
         try {  
             baos = new ByteArrayOutputStream();  
             out = new ObjectOutputStream(baos);  
             out.writeObject(object);  
             out.close();  
   
            byteObject = baos.toByteArray();  
   
         } catch (Throwable e) {  
         }  
         adicionaArquivoByteObject(byteObject);
         return byteObject;  
     }
esse metodo grava no banco de dados
public Object adicionaArquivoByteObject(byte[] adicionaArquivo) {
        ByteArrayInputStream bais = null;
        ObjectInputStream in = null;
        Object objArquivo = null;

        try {

            bais = new ByteArrayInputStream(adicionaArquivo);
            in = new ObjectInputStream(bais);
            objArquivo = (Object) in.readObject();
            in.close();

        } catch (Throwable ex) {

        }
      
        return objArquivo;
    }
Criado 14 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 2
Participantes 2