Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

RJLP

Inserir imagem na base de dados

Mensagens Recomendadas

RJLP

Boas tardes

Vinha perguntar-vos como posso enviar uma imagem para a Base de Dados.

A imagem é carregada através de uma JFileChooser e colocada num Label. O caminho da imagem consigo enviar sem problema para a BD, mas a imagem mesmo, já tentei e não consegui.

Junto envio o código da Inserção da Imagem:

JFileChooser jf = new JFileChooser();
jf.setFileFilter(getFilter());
jf.setMultiSelectionEnabled(false);
jf.setFileHidingEnabled(true);
jf.setAccessory(new ImagePreview(jf));
UIManager.put("FileChooser.openDialogTitleText", "Abrir");
UIManager.put("FileChooser.lookInLabelText", "Consultar em");
UIManager.put("FileChooser.openButtonText", "Abrir");
UIManager.put("FileChooser.cancelButtonText", "Cancelar");
UIManager.put("FileChooser.fileNameLabelText", "Nome do Ficheiro");
UIManager.put("FileChooser.filesOfTypeLabelText", "Tipo de Ficheiro");
UIManager.put("FileChooser.openButtonToolTipText", "Abrir o Ficheiro Selecionado");
UIManager.put("FileChooser.cancelButtonToolTipText","Cancelar");
UIManager.put("FileChooser.fileNameHeaderText","Nome");
UIManager.put("FileChooser.upFolderToolTipText", "Subir um Nível");
UIManager.put("FileChooser.homeFolderToolTipText","Área de Trabalho");
UIManager.put("FileChooser.newFolderToolTipText","Criar Nova Pasta");
UIManager.put("FileChooser.listViewButtonToolTipText","Lista");
UIManager.put("FileChooser.newFolderButtonText","Criar Nova Pasta");
UIManager.put("FileChooser.renameFileButtonText", "Renomear");
UIManager.put("FileChooser.deleteFileButtonText", "Eliminar");
UIManager.put("FileChooser.filterLabelText", "Tipo");
UIManager.put("FileChooser.detailsViewButtonToolTipText", "Detalhes");
UIManager.put("FileChooser.fileSizeHeaderText","Tamanho");
UIManager.put("FileChooser.fileDateHeaderText", "Data de Modificação");
UIManager.put("FileChooser.acceptAllFileFilterText", "Todos os Ficheiros");
SwingUtilities.updateComponentTreeUI(jf);
int escolha = jf.showOpenDialog(this);
if(escolha == JFileChooser.APPROVE_OPTION){
DataInputStream is = null;
this.jTextArea1.append(jf.getSelectedFile().getName());
File ImagemArquivo = jf.getSelectedFile();
String Path = ImagemArquivo.getPath();
File arq = jf.getSelectedFile();
File f = new File(arq.toString());
String path = arq.toString();
Image Img = Toolkit.getDefaultToolkit().getImage(Path);
lbimagem.setIcon(new ImageIcon(Img.getScaledInstance(lbimagem.getWidth(),lbimagem.getHeight(), Image.SCALE_DEFAULT)));
Image image = ((ImageIcon)lbimagem.getIcon()).getImage();
jLabel5.setVisible(true);
jLabel6.setVisible(true);
jLabel7.setVisible(true);

this.requestFocus();


}else{
JOptionPane.showMessageDialog(this, "A seleção de imagem foi cancelada!", "Atenção!", JOptionPane.WARNING_MESSAGE);
}



}



private FileFilter getFilter() {
FileFilter ff = new FileFilter() {

public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}

String extension = getExtension(f);
if (extension != null) {
if (extension.equals(".gif")
|| extension.equals(".jpg")
|| extension.equals(".jpeg")
|| extension.equals(".png")) {
return true;
} else {
return false;
}
}
return false;
}

private String getExtension(File f) {
String ext = null;
String s = f.getName();
int i = s.lastIndexOf('.');

if (i > 0 && i < s.length() - 1) {
ext = s.substring(i).toLowerCase();
}
return ext;
}

@Override
public String getDescription() {
return "Arquivos de Imagens (.gif, .jpg, .jpeg, .png)";
}
};

return ff;
}

E código de inserção dos dados desta janela na BD:

private boolean InserirNoticias(){

String sql ="INSERT INTO noticia (titulo, categoria, "
+ " mensagem, imagem) VALUES (' "
+ this.tftitulo.getText() + "'"
+ ", '" + this.cbcategoria.getSelectedItem() + "' "
+ ", '" + this.tamensagem.getText() + "' "
+ ", '" + this.jTextArea1.getText() + "') ";


System.out.println(sql);

try {
int nr = instrucao.executeUpdate(sql);
if(nr > 0){
JOptionPane.showMessageDialog(this, "A notícia com o título " +tftitulo.getText()+ " foi inserido com sucesso!");
return true;
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(this,
"ERRO: Não foi possível estabelecer ligação com a base de dados"
+ ex.getMessage());
}
return false;

}

Nota: Aqui a imagem está a enviar o caminho da imagem, como já referi anteriormente queria enviar mesmo a imagem, e não estou a conseguir, espero por ajuda, obrigado ;)

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.