将图像存储到netbeans中的文件夹中

时间:2014-02-07 10:20:00

标签: java image swing oracle10g netbeans-7

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

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

但我不知道如何将图像存储到文件夹中。希望有人帮助解决这个问题。

2 个答案:

答案 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"); 

<强>更新

保存到文件系统。您需要在此代码行中指定路径

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();
            }
        });
    }
}

答案 1 :(得分:0)

以下代码选择图像并将其保存到文件夹中。有关更多信息,请点击此链接How to save image in folder and path to database

 JFileChooser chooser=new JFileChooser();
 chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
 int res=chooser.showOpenDialog(ImageTutorial.this);
if(res==JFileChooser.APPROVE_OPTION)
{
file=chooser.getSelectedFile();
String path=file.getAbsolutePath();
ImageIcon image=new ImageIcon(file.getAbsolutePath());
Rectangle rec=imagelbl.getBounds();
Image scaledimage=image.getImage().getScaledInstance(rec.width,rec.height,Image.SCALE_SMOOTH);
image=new ImageIcon(scaledimage);
imagelbl.setIcon(image);
imagename.setText(file.getName());
 }else
  {
  JOptionPane.showMessageDialog(null,"No new image selected");
  }
相关问题