2014-02-07 52 views
1

我正在使用FileChooser从系统中选择图像。现在我想将图像存储到db中。为此,我在该项目中创建了一个新文件夹图像,并且我的想法是加载打开图像的文件夹就像img1,img2 ...一样重命名,并将此路径存储到数据库中,每次只有一个图像。 我用下面的代码用于获取图像名称将图像存储到netbeans中的文件夹中

String name = jFileChooser1.getSelectedFile().getAbsolutePath(); 

但我不知道如何将图像存储到folder.Hope有人帮助解决这个问题。

+0

指定路径为何保存到文件夹呢?为什么不直接到数据库? –

回答

1

我没有看到将图像存储到项目jar中的要点。将它保存到系统中会更有意义。但是再一次,为什么要这样做呢?

只需将图像直接存储到数据库。要做到这一点只是这样做

PreparedStatement ps=con.prepareStatement("insert into imgtable values(?)"); 
FileInputStream fin=new FileInputStream(fileFromChooser); 
ps.setBinaryStream(1,fin,fin.available()); 

int i=ps.executeUpdate(); 
System.out.println(i+" records affected"); 

UPDATE

保存到文件系统。你需要在这行代码

ImageIO.write(image, "jpg",new File("C:\\path\\to\\destination\\" + file.getName())); 

import java.awt.GridBagLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.imageio.ImageIO; 
import javax.swing.JButton; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 
import javax.swing.filechooser.FileNameExtensionFilter; 

public class SaveImageFile { 

    public SaveImageFile() { 
     final JFrame frame = new JFrame("Save Image"); 

     JButton saveImage = new JButton("Browse"); 
     saveImage.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       JFileChooser chooser = new JFileChooser(); 
       FileNameExtensionFilter filter = new FileNameExtensionFilter(
         "JPG, GIF, and PNG Images", "jpg", "gif", "png"); 
       chooser.setFileFilter(filter); 
       int returnVal = chooser.showOpenDialog(frame); 
       if (returnVal == JFileChooser.APPROVE_OPTION) { 
        File file = chooser.getSelectedFile(); 
        System.out.println("You chose to open this file: " 
          + file.getName()); 
        BufferedImage image; 
        try { 
         image = ImageIO.read(file); 
         ImageIO.write(image, "jpg",new File("C:\\path\\to\\destination\\" + file.getName())); 
        } catch (IOException ex) { 
         Logger.getLogger(SaveImageFile.class.getName()).log(Level.SEVERE, null, ex); 
        }    
       } 
      } 
     }); 
     frame.add(saveImage); 
     frame.setLayout(new GridBagLayout()); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(300, 300); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       SaveImageFile saveImageFile = new SaveImageFile(); 
      } 
     }); 
    } 
} 
+0

尝试了此代码。它显示错误“未实现或不合理的转换请求”。 – spc

+0

你能提供将图像保存到文件夹中的代码吗?我正在处理大尺寸图像。所以希望只存储该路径 – spc

+0

请参阅我的**更新** –

相关问题