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 …
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:
[code]
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);
}
}[/code]
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