上传/下载word文件到/从Mysql上传

时间:2015-06-05 14:20:27

标签: java mysql file-upload

我正在创建一个允许用户填写来自并将其简历上传到潜在雇主的应用程序。目前我仍然坚持将CV上传到我的数据库。

        //File chooser
    JFileChooser fc = new JFileChooser();
    fc.setCurrentDirectory(new java.io.File("C:\\Users\\Dawid\\Desktop"));
    fc.setDialogTitle("CV Upload");
    fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    /*********************************************/
    //Buttons
    JButton open = new JButton();
    JButton btnBrowse = new JButton("Browse");
    btnBrowse.setBounds(312, 172, 89, 23);
    qualifications.add(btnBrowse);
    btnBrowse.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) 
        {
            if(fc.showOpenDialog(open) == JFileChooser.APPROVE_OPTION);
            CvUploadTextField.setText(fc.getSelectedFile().getAbsolutePath());
        }
    });

这段代码设置我的文件选择器并在文本框中打印出文件路径。我希望实现的是能够从该文本框中获取文件路径,并能够以与下面类似的方式将该文件上载到数据库。

                 try 
              {
                  Class.forName(driver).newInstance();
                  Connection conn = DriverManager.getConnection(url+dbName,userName,password);
                  Statement st = conn.createStatement();
                  ResultSet res = st.executeQuery("SELECT * FROM javaapp.test");
                  int val = st.executeUpdate("INSERT INTO javaapp.test (Name,DOB,Phone,Email,Q1Name,Q1Title,Q2Name,Q2Title,W1Name,W1From,W1To,W2Name,W2From,W2To,About)"
                        + " VALUES ('"+Name+"','"+DOB+"','"+Phone+"','"+Email+"','"+Q1Name+"','"+Q1Title+"','"+Q2Name+"','"+Q2Title+"','"+W1Name+"','"+W1From+"',"
                                + "'"+W1To+"','"+W2Name+"','"+W2From+"','"+W2To+"','"+About+"')");
                  if(val==1)
                      System.out.print("Successfully inserted value");
                  conn.close();
              } 
              catch (Exception e) 
              {
                  e.printStackTrace();
              }

我知道文件不像字符串和整数,所以我无法弄清楚如何做到这一点。任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:1)

JFileChooser有一个方法getSelectedFile()。哪个是文件。你可以

如果您只想允许.doc,.docx扩展名设置

 JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "word docs only", "doc", "docx");
    chooser.setFileFilter(filter);

将其另存为

 File selectedFile = chooser.getSelectedFile();

        try {
            String fileName = selectedFile.getCanonicalPath();
            if (!fileName.endsWith(EXTENSION)) {
                selectedFile = new File(fileName + EXTENSION);
            }
            ImageIO.write(image, FORMAT_NAME, selectedFile);
        } catch (IOException e) {
            e.printStackTrace();

答案 1 :(得分:0)

如果要将word文件上传到数据库,可能需要查找mysql的 BLOB 数据类型以及java的字节数组

<强>建议: 将文件存储在SERVER中并将这些文件的目录路径存储在数据库中是理想的,这样您就可以知道在检索它们时的位置。这不仅是一个简单的实施,也是明智的。