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:
[code]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;
}[/code]
E código de inserção dos dados desta janela na BD:
[code]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;
}[/code]
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