【问题标题】:How to retrieve the original file如何找回原始文件
【发布时间】:2016-09-09 23:19:27
【问题描述】:

在 Java JSP 中,我使用输入流和 BLOB 数据类型将任何类型的文件写入数据库。我想检索 BLOB 文件。我应该如何去找回它?我尝试使用 select 语句并得到了这个(材料列)。

【问题讨论】:

  • 你能显示一些代码,你是如何插入数据库的吗?
  • link查看代码

标签: java sql file blob


【解决方案1】:

使用ResultSet,您可以检索java.sql.Blob 实例:

Blob blob = resultSet.getBlob("MATERIAL");

然后你可以打开一个输入流:

InputStream input = blob.getBinaryStream();

并将其写入Is it possible to create a File object from InputStream中所述的文件

【讨论】:

  • 如何在jsp中显示该输入流,在检索到blob材料的值之后?
  • 你必须展示它还是能够下载它?文件显示不出来怎么办?
  • 我在不使用blob的情况下解决了这个问题,因为下载文件路径并且它可以工作
【解决方案2】:

从表中获取 Blob:

try (ResultSet rs = statement.executeQuery(query)) {
    if(rs.next()) {
        fileBlob = rs.getBlob(1);
    }
}

将 Blob 的内容保存到新文件中:

try (InputStream ipStream = fileBlob.getBinaryStream(1, fileBlob.length());
        OutputStream opStream = new FileOutputStream(new File("path/to/file"))) {                        
    int c;
    while ((c = ipStream.read()) > -1) {
        opStream.write(c);
    }
}

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多