尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

国产麒麟、uos在线编辑数据库中的文件

国产麒麟、uos在线编辑数据库中的文件
📅 发布时间:2026/6/20 15:39:30

在某些项目中,数据库的文档表中使用了二进制流字段(blob)来保存Office文档,PageOffice也是可以支持在线打开此类二进制流文件的。

首先,编写一个下载文件的后台方法,比如:openStream;

然后,把此openStream方法的url地址传递给PageOfficeCtrl对象的webOpen的第一个参数即可打开;

最后,保存文件时,调用FileSaver对象的getFileBytes()或getFileStream()获取到文件二进制流并保存到数据库中。

后端代码

  1. 编写下载文件的后台方法:openStream;
    1. @RequestMapping(value = "openStream", method = RequestMethod.GET)
    2. public void openStream(HttpServletRequest request, HttpServletResponse response)
    3. throws SQLException, ClassNotFoundException, IOException {
    4. String id = request.getParameter("id");
    5. Class.forName("org.sqlite.JDBC");
    6. String strUrl = "jdbc:sqlite:" + ResourceUtils.getURL("classpath:").getPath()
    7. + "static/demodata/DataBase.db";
    8. Connection conn = DriverManager.getConnection(strUrl);
    9. Statement stmt = conn.createStatement();
    10. ResultSet rs = stmt.executeQuery("select * from stream where id = " + id);
    11. if (rs.next()) {
    12. //******读取数据库中文件流 开始*******************************
    13. byte[] imageBytes = rs.getBytes("Word");
    14. int fileSize = imageBytes.length;
    15. response.reset();
    16. // application/msword, application/x-excel, application/ms-powerpoint, application/pdf
    17. response.setContentType("application/msword");
    18. response.setHeader("Content-Disposition",
    19. "attachment; filename=down.doc"); //fileN应该是编码后的(utf-8)
    20. response.setContentLength(fileSize);
    21. OutputStream outputStream = response.getOutputStream();
    22. outputStream.write(imageBytes);
    23. outputStream.flush();
    24. outputStream.close();
    25. outputStream = null;
    26. //******读取数据库中文件流 结束*******************************
    27. }
    28. rs.close();
    29. conn.close();
    30. }
  2. 在后端编写代码调用webOpen方法打开文件之前给SaveFilePage属性赋值(设置好保存时由哪个地址接口负责接收处理控件上传的文件流);
    1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
    2. poCtrl.setSaveFilePage("saveStream?id=123"); // 设置保存文件的接口地址
    3. //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
    4. //查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
    5. poCtrl.webOpen("openStream?id=123", OpenModeType.docNormalEdit, "张佚名"); // 打开文件

    注意

    对PageOfficeCtrl对象的所有属性赋值或函数调用都必须在WebOpen方法调用之前执行,否则会不生效。

     3.在SaveFilePage属性指向的地址接口saveStream中,创建FileSaver对象处理文件的保存工            作。

  1. @RequestMapping("saveStream")
  2. public void saveStream(HttpServletRequest request, HttpServletResponse response)
  3. throws ClassNotFoundException, FileNotFoundException, SQLException {
  4. FileSaver fs = new FileSaver(request, response);
  5. String id = request.getParameter("id").trim();
  6. Class.forName("org.sqlite.JDBC");
  7. String strUrl = "jdbc:sqlite:"
  8. + ResourceUtils.getURL("classpath:").getPath() + "static/demodata/DataBase.db";
  9. Connection conn = DriverManager.getConnection(strUrl);
  10. String sql = "UPDATE Stream SET Word=? where ID=" + id;
  11. PreparedStatement pstmt = null;
  12. pstmt = conn.prepareStatement(sql);
  13. pstmt.setBytes(1, fs.getFileBytes());
  14. //pstmt.setBinaryStream(1, fs.getFileStream(),fs.getFileSize());
  15. pstmt.executeUpdate();
  16. pstmt.close();
  17. conn.close();
  18. fs.close();
  19. }

参考链接:https://www.pageoffice.cn/pages/cc29fc/

相关新闻

  • 2025 年上海勇顺电力设备安装公司:电力服务权威测评出炉 核心优势与行业口碑全面盘点
  • 2025 年 11 月精密钢球,440C 不锈钢球,420 不锈钢球厂家最新推荐,技术实力与市场口碑深度解析!
  • 2025年企业邮箱服务推荐:企业邮箱选哪家?5大主流服务商深度解析

最新新闻

  • 2026年6月劳力士官方售后维修服务中心|全国官方统一咨询电话,各门店详细地址查询 - 速递信息
  • 量化与应对AI绘画文化偏见:从评估到VAOP策略实践
  • 踩坑预警!沙坪坝教资考生择校查看真实学员评价 - 晚香时候
  • 道路运输许可证丢了登报怎么线上办理?正规办理渠道与流程 - 速递信息
  • Claude Opus 4.7深度解析:长上下文、自主检查与多模态语义编织
  • 嵌入式GUI开发实战:Alpha混合与位图绘制优化指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号