blob

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Main {
  static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
  static String username = "username";
  static String password = "welcome";

  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection(url, username, password);
    conn.setAutoCommit(false);

    String sql = "INSERT INTO pictures (name, description, image) VALUES (?, ?, ?)";
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setString(1, "java.gif");
    stmt.setString(2, "Java Official Logo");

    File image = new File("D:\\a.gif");
    FileInputStream   fis = new FileInputStream(image);
    stmt.setBinaryStream(3, fis, (int) image.length());
    stmt.execute();

    conn.commit();
    fis.close();
    conn.close();
  }
} 
 

 

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Main {
  static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
  static String username = "username";
  static String password = "welcome";
  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection(url, username, password);

    String sql = "SELECT name, description, image FROM pictures ";
    PreparedStatement stmt = conn.prepareStatement(sql);
    ResultSet resultSet = stmt.executeQuery();
    while (resultSet.next()) {
      String name = resultSet.getString(1);
      String description = resultSet.getString(2);
      File image = new File("D:\\java.gif");
      FileOutputStream fos = new FileOutputStream(image);

      byte[] buffer = new byte[1];
      InputStream is = resultSet.getBinaryStream(3);
      while (is.read(buffer) > 0) {
        fos.write(buffer);
      }
      fos.close();
    }
    conn.close();
  }
}

 

转载于:https://www.cnblogs.com/yasepix/p/6423080.html

07-11
### 创建 Blob 对象 在 JavaScript 中,`Blob` 对象表示不可变的、原始数据的类文件对象。`Blob` 表示的数据不一定是一个 JavaScript 原生格式。其构造函数为 `new Blob(array, options)`,其中 `array` 是一个数组,包含将被放入 `Blob` 的数据;`options` 是一个可选对象,可以设置 `type` 属性来指定 MIME 类型。 ```javascript var tableHtml = '<html><head><meta charset="UTF-8"></head><body>'; tableHtml += lHtml; tableHtml += '</body></html>'; var excelBlob = new Blob([tableHtml], { type: 'application/vnd.ms-excel' }); ``` 在此代码中,通过 `new Blob()` 创建了一个用于导出 Excel 文件的 `Blob` 对象,并指定了类型为 `application/vnd.ms-excel` [^2]。 ### 下载 Blob 内容 为了实现文件下载,通常会结合 `<a>` 标签的 `download` 属性和 `URL.createObjectURL(blob)` 方法创建临时链接: ```javascript var funDownload = function (content, filename) { var eleLink = document.createElement('a'); eleLink.download = filename; eleLink.style.display = 'none'; var blob = new Blob([content]); eleLink.href = URL.createObjectURL(blob); document.body.appendChild(eleLink); eleLink.click(); document.body.removeChild(eleLink); }; ``` 该方法利用 `Blob` 和 `URL.createObjectURL()` 创建了可下载链接,以实现文本内容的文件保存功能 [^3]。 ### 在浏览器中预览 Blob 数据 `Blob` 也可以用于浏览器内直接预览文件内容,例如视频流或 HTML 文档: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', './test.mp4'); xhr.responseType = 'blob'; xhr.onload = function (e) { if (this.status == 200) { var blob = this.response; document.getElementById('sound').src = URL.createObjectURL(blob); } }; xhr.send(); ``` 此代码片段展示了如何使用 `XMLHttpRequest` 获取视频文件并将其作为 `Blob` 处理,随后通过 `URL.createObjectURL(blob)` 将其转换为可以在 `<video>` 元素中使用的地址 [^1]。 ### 支持 Internet Explorer 的兼容性处理 对于 Internet Explorer 这样的旧版浏览器,标准的 `download` 属性可能不适用。此时可以通过 `msSaveOrOpenBlob()` 方法进行兼容处理: ```javascript function isIE() { return !!window.ActiveXObject || "ActiveXObject" in window; } if (isIE()) { window.navigator.msSaveOrOpenBlob(excelBlob, fileName); } else { var oa = document.createElement('a'); oa.href = URL.createObjectURL(excelBlob); oa.download = fileName; document.body.appendChild(oa); oa.click(); } ``` 这段代码确保了即使在 IE 浏览器下也能正常执行文件的下载操作 [^2]。 ### 使用场景总结 `Blob` 可用于多种用途,包括但不限于: - 视频或音频流的加载与播放。 - 文本、HTML 或表格数据的文件导出。 - 在客户端生成并操作文件,而无需服务器交互。 - 实现文件上传、下载及实时预览功能。 通过合理使用 `Blob`,可以显著提升 Web 应用在文件处理方面的灵活性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值