Manipulação de arquivo :: Gravando nome da foto no banco e arquivo em pasta específica

1 resposta
tiagosarno

Olá pessoal do GUJ.
Em uma aplicação que estou desenvolvendo, realizo o cadastro de clientes no sistema, só que neste cadastro tem uma opção para gravar a foto do individuo, eu não estou interessado em gravar a foto diretamente no banco de dados, em vez disso, quero gravar apenas o nome do arquivo no banco de dados como “fulano.jpg” e o arquivo em si, desejo copia-lo para uma determinada pasta previamente criada dentro do projeto.
As fotos já estarão no PC, batidas em momento anterior ao cadastro. Pensei no JFileChooser para a implementação, mas não tenho noção de como posso implementar este procedimento.
Minha intenção é fazer exatamente o mesmo procedimento de quando realizamos o upload de arquivos através do input tipo “FILE” do HTML, só que para este caso, seria para Desktop mesmo. Obrigado …

1 Resposta

ViniGodoy

Sua dúvida é com o uso do JFileChooser?
Ou seria com a cópia da imagem para o diretório especificado?
Ou ainda seria com a gravação no banco de dados?

Para copiar arquivos, eu geralmente uso a seguinte função:

public void copyFile(String srcFileName, String dstFileName) {
   try {    
        // Create channel on the source
        FileChannel srcChannel = 
          new FileInputStream(srcFilename).getChannel();
    
        // Create channel on the destination
        FileChannel dstChannel = 
          new FileOutputStream(dstFilename).getChannel();
    
        // Copy file contents from source to destination
        dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
    
        // Close the channels
        srcChannel.close();
        dstChannel.close();
        
    } catch (IOException e) {
        throw new RuntimeException("Unable to copy file.", e);
    }
}

O uso do JFileChooser é bem documentado. Você pode dar uma olhada na internet, na página da sun:
http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html

Ou pode olhar um exemplo nesse tópico do GUJ:
http://www.guj.com.br/posts/list/50412.java

Criado 6 de março de 2007
Ultima resposta 10 de mar. de 2007
Respostas 1
Participantes 2