【问题标题】:Uploading/Downloading word file to/from Mysql上传/下载word文件到/从Mysql
【发布时间】:2015-08-20 13:05:15
【问题描述】:

我正在创建一个应用程序,该应用程序允许用户填写表格并将其简历上传给潜在雇主。目前,我一直在将简历上传到我的数据库。

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

我知道文件不像字符串和整数,所以我不知道该怎么做。任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: java mysql file-upload


    【解决方案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();
    

    【讨论】:

    • 这绝对有用。谢谢
    【解决方案2】:

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

    推荐: 将文件存储在您的服务器上并将这些文件的目录路径存储在数据库中是理想的,这样您就知道在检索它们时在哪里查找。这不仅是一个简单的实现,而且是明智的。

    【讨论】:

    • 但是如果您仍然坚持将文件上传到您的数据库,我可以为您提供更多信息。
    • 我对数据库相当陌生,所以我认为如果你说将文件放在服务器上比放在数据库上更好,我可能会这样做,但我会再次这样做不知道该怎么做。任何指针?我目前正在使用 WAMP 服务器在家中建立一个数据库。
    • 嗯,这取决于你的长期目标。让我们说,如果您想稍后根据属性搜索文件或想要跟踪更改、保留版本等,那么案例数据库会更强大。代码是最不值得担心的设计和需求,这取决于您想要做的长期工作。
    • 我打算用它做的是,当一个人申请时,他/她填写表格,然后将简历附加到该表格。他们单击提交并将信息发送到数据库。目前我已经正确保存了信息,我可以以管理员身份在应用程序中查看它。我希望添加的是查看在管理窗口中上传的简历的选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2015-09-19
    • 1970-01-01
    相关资源
    最近更新 更多