java - 如何从指定位置获取附件并将​​其存储到文件系统?

标签 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

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

我能够获取附件 URL,也能够创建文件夹。但是我如何将附件写入特定文件夹?

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!");
                }

我怎样才能实现这个目标

最佳答案

附件 URL 似乎不是 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!");
        }
    }

关于java - 如何从指定位置获取附件并将​​其存储到文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910949/

相关文章:

java - 在 Java 中打印数组

java - 构建 javax.usb 时出现的问题 - 引用实现和 Linux 实现

php - 这样更新sql怎么办?

android - Android 和 MySQL/PHP 数据库连接问题

sql - SQL Server Management Studio中的脚本大小限制

sql-server - 在时间线 SQL Server 中对事件进行分组

java - 将数组添加到 ArrayList

mysql - 尝试优化会降低性能的查询

android - Xamarin Sql Server 无法建立连接

java - 使用文件提供程序检索内容 URI 失败