如何从指定位置获取和存储附件到文件系统?

时间:2014-04-07 11:21:28

标签: java mysql sql-server file-io

我正在编写一个java代码来检索从指定位置到文件系统的附件。 附件信息存储在数据库表列中,如此

Number        attachment_url                                                     
-----------  -----------------------------------------------------------------  
SAT-3        C:\test_attachments\SAT\SAT-368\thumbs\_thumb_63650.png  
SAT-10       C:\test_attachments\SAT\thumbs\_ts63650.xls
SAT-89       C:\test_attachments\SAT\thumbs\mydoc.pdf

文件扩展名可以是任意文件。

我可以获取附件网址,也可以创建文件夹。但是如何将附件写入特定文件夹呢?

File files = new File("E:\\Directory1\\" + m_Number);
            if (!files.exists()) {
                if (files.mkdirs()) {
                    System.out.println("Multiple directories are created!");
                    if (files.exists()) {
                        System.out.println("Directory exists");
                        if (files.canWrite()) {
                            Blob blob = resultSet.getBlob("att_url");


                        } else {
                            System.out.println("Access denied !!!");
                        }
                    }
                } else {
                    System.out.println("Failed to create multiple directories!");
                }

我怎样才能实现这个

1 个答案:

答案 0 :(得分:1)

附件网址似乎不是BLOB。我认为这是一个字符串。所以只需获取字符串并创建一个File对象。如果文件存在,您可以将其复制到您的文件夹中。

File files = new File("E:\\Directory1\\" + m_jiraNumber);
    if (!files.exists()) {
        if (files.mkdirs()) {
            System.out.println("Multiple directories are created!");
            if (files.exists()) {
                System.out.println("Directory exists");
                if (files.canWrite()) {
                    String attachment = resultSet.getString("attachment_url").replace("\\", File.separator);
                    Path sourcePath = Paths.get(attachment);
                    Path destPath = Paths.get(files.getAbsolutePath() + File.separator + sourcePath.getFileName().toString());
                    Files.copy(sourcePath, destPath);
                } else {
                    System.out.println("Access denied !!!");
                }
            }
        } else {
            System.out.println("Failed to create multiple directories!");
        }
    }