需要完成下载->修改->上传这三个步骤

平台有提供对应的api吗?

/**

首先我们来理解下关于文档的api

文档相关api都在这2个package下面

package :com.justep.doc

Class :Docs Doc DocUtils

其中Docs是一组Doc和合集也就是Doc的容器类 Doc对应的是文档对象DocUtils是文档相关的常用函数

package :com.justep.doc.attachment

Class: Attachments Attachment 等

这里面主要是和附件相关的,我们认为Attachment是Doc作为附件形式的对象,当然这个package里面还有和附件相关的其他类 比如文档关联(AttachmentDefine)

首先 :我们要明白一个概念

文档的root-path

在x5中文档服务器可以分布式部署的,也就是说你可以连接多个x5的文档服务器来保存文件,那么你这次这个文件放到哪个文档服务上里?

在x5中是通过root-path来标识,不同的文档服务器的标识root-path是不同的(关于这块的详细理解 请参考关于文档相关的视频或者文档)

*/

/**

* 1.这里我们先看看怎么上传一个文档

* 首先我们建立个存储doc的容器

*/

{

Docs docs = new Docs();

/**

然后我们在这个容器中新建一个文档

参数:sParentId 就是说你把这个文件展现到文档中心的哪个目录下

注意:真实物理文件存储位置是在DocServer配置的data目录中

不理解文档中心目录和物理位置关系的同学 请看www.justep.com视频

*/

Doc doc = docs.addDoc("defaultDocNameSpace");

File f = new File("c:/book.xls");

/**

* 现在doc还只是文档中心树上的一个节点没有关联上任何的物理文件

* 调用upload方法,文件就传到DocServer中了 ,节点和物理文件也关联上了

*/

doc.upload(f);

/**

* 成文,也就是说你这些操作要提交了,其中该保存数据库的的保存数据库,该生成上传日志的帮我记录好日志(SA_DocLog中有记录哦)

* 不理解成文和保存的区别的看视频把

*/

docs.createVersion();

/**

* 搞定 上传完了 现在你可以看看你刚才上传的文件的fileId是多少等等 都可以通过doc.getXXX

String fileId = doc.getsFileID();

System.out.println("产生的fileId是:"+fileId);

*/

}

/**

* 2. 接下来我们看下载

*

*/

{

Docs docs = new Docs();

/**

* query(docId, docPath, pattern, orderBy, custom)

* docId 如果你只要一个文件 那么传你的docId

* docPath 说的是你要查询文档中心那颗文档树上那个节点下的文档

* pattern 你要查询那些信息 文档名字,文档大小 你就理解为sql中select部分把

* orderBy 排序 我不用解释了把

* custom 如果你还有自定意的过滤条件你就写把 你就理解为sql中wherer部分

*

* 下面我这行意思就是 我要拿/defaultDocNameSpace/0e29f353-c9d0-4bdc-8e48-647ceb9dbe62 这个节点下的所有文件 ,然后获取(get)其中docId为C581B536B8200001D99837D81ED4D2B0的doc

*

* 当然你要写成 docs.query("C581B536B8200001D99837D81ED4D2B0", "/defaultDocNameSpace/0e29f353-c9d0-4bdc-8e48-647ceb9dbe62", null, null, null)

* 那么恭喜你已经理解了哈

* 其实docs.query("C581B536B8200001D99837D81ED4D2B0", null, null, null, null)就行

*

*/

Doc doc = docs.query(null, "/defaultDocNameSpace/0e29f353-c9d0-4bdc-8e48-647ceb9dbe62", null, null, null).get("C581B536B8200001D99837D81ED4D2B0");

File outPutFile =new File("c:/"+doc.getsDocName());

doc.download(new FileOutputStream(outPutFile));

/**

* 去你C盘下看看把 是不是有个文件了

*/

}

/**

* 3. 我们来看 修改后的保存 上传 成文

*/

String docId = "C581B536B8200001D99837D81ED4D2B0";

Docs docs = new Docs().query(docId, "/defaultDocNameSpace/0e29f353-c9d0-4bdc-8e48-647ceb9dbe62", null, null, null);

Doc doc = docs.get(docId);

/**

* 上面 我不解释了

* lock 这个很重要,你要修改文件 一定要先锁上 再改哦 ,要不你保证不住多人修改文件的情况,所以我不存数据库的只修改java对象。

*/

DocUtils.lock(docId);

doc.setsDocName("b.bin");

//doc.getRow().setDateTime("sLastWriteTime",Timestamp);

doc.upload(new File("c:/boot.ini"));

/**

* 熟悉第一步的你已经懂了

* 这里 如果你addDoc的 也就是new的 就新建一个

* 如果是query的 edit的 就 修改形成文档新版本

*

* 注意 修改的情况

* 1. 修改文件内容 那么这个逻辑可以

*

* 2. 不修改文件只修改文件属性那么 需要设置

* docs.setIsEditInfo(true);

*/

docs.createVersion();

以上代码 主要用来介绍api 里面有写地方需要理解代码后自己注意,千万不要照抄。

比如docs.get(docId); 你应该考虑 docId不再docs里面后返回的doc是null的情况。

lock的时候 已经有别人锁上了 根据返回值来判断是否已经锁上的情况。

如果要在java中获取url需要调用

com.justep.doc.DocAdapter.queryHost(Boolean isHttps, String docPath,

String urlPattern, Boolean isFormAction);

比如你的已知数据是

[{“docID”:”C490A0A0-F170-0001-3E32-119C17711D64″,”docName”:”MN-2-011-31.pdf”,”size”:522021,”fileID”:”2313-DOC”,”docPath”:”/A226C50E-2EBD-4E05-B16B-5074B3149AD0″}]

那么isHttps传false,

docPath就是/A226C50E-2EBD-4E05-B16B-5074B3149AD0

urlPattern分为:

上传 /repository/file/cache/upload

下载 /repository/file/download

参看 /repository/file/view

officeViewer组件上传的office文件的url /repository/file/cache/office/

附件上传的临时文件的提交 /repository/file/cache/commit (一般和数据库的保存事件在一个事务中完成)

isFormAction是考虑到如果前台采用form提交的时候会有跨域访问需要特殊处理的时候的参数,如果你不理解建议你传true

以上方法是带权限的,也就是说你想拿这个url那么当前登录人在文档中心必须有这个文件的相应权限,如果你不想关注文档中心的权限可以调用函数queryNoPermissionHost。

如果要在js中获取url :

justep.Doc.getdocServerAction(docPath, urlPattern, isFormAction);

参数我就不解释了和上面一样。调用上面函数需要引用js文件 system\service\doc\docUtil.js

本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5!

java 上传文件服务_java代码实现上传文件到文档服务器、下载文档服务器文件相关推荐

  1. sharepoint 2016 学习系列篇(21)-文档库应用篇-(3)在文档库中上传文档和下载文档

    在文档库中,上传文档到文档库中,有一下几种方式: 第一种,通过文档库页面,点击上载: 点击"浏览",选择需要上载的文件,点击确定 第二种,通过文档库页面,拖文档的方式上载: 在电脑 ...

  2. java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  3. 基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...

  4. 计算机毕业设计Java“花园街道”社区医院服务系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java"花园街道"社区医院服务系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java"花园街道"社区医院服务系统(源码+系统+m ...

  5. 计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S ...

  6. 通过一个最简单的HTTP服务器工具软件(如http文件服务器-hfs2),建立一个临时的HTTP文件服务,使能通过手机浏览器等访问下载你的计算机中指定的文件

    通过一个最简单的HTTP服务器工具软件(如http文件服务器-hfs2),建立一个临时的HTTP文件服务,使能通过手机浏览器等访问下载你的计算机中指定的文件 1.先到网上下载http文件服务器-hfs ...

  7. java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  8. java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  9. ajax下载文档 ClientAbortException: java.net.SocketException: Connection reset by pee

    众所周知ajax是使用了浏览器内部的XmlHttpRequest对象来传输XML数据的.既然是Xml的数据传输,那么传输的数据肯定是文本的,而文件上传则需要传输二进制的数据,显然用ajax是不可能的. ...

最新文章

  1. caffe 下一些参数的设置
  2. leach协议matlab仿真代码
  3. debain mariadb10配置root
  4. 多数据中心的高可用结构【环状星型数据库架构】
  5. Qt学习笔记-各种对话框基本使用
  6. 321电商学院 与华中师大联手 - 2014-10-22
  7. SQL Server数据同步
  8. vbs如何调用c语言函数,VBS编程教程 (第6篇)
  9. java 循环依赖_Java详解之Spring Bean的循环依赖解决方案
  10. Publish Over SSH 本地安装
  11. 最适合程序员转行的10大职业
  12. 【JavaSE】十二生肖带你走进枚举类
  13. 日常pytho3练习脚本之--两个逗比聊天机器人
  14. 美世家无线点菜android,美世家无线点菜成功实现iPad mini平台应用
  15. python少儿编程课件ppt_《Python 少儿趣味编程》
  16. Java网上投票系统毕业设计
  17. interrupt()方法理解和实例
  18. Refactor反编译C#程序
  19. 烤仔建工 | Wearable Dao时装秀倒计时!在元宇宙里穿上“中国红”!
  20. IRremoteESP8266库 红外控制空调方法

热门文章

  1. 竞价推广怎么统计加粉词?
  2. 并行处理类毕业论文文献有哪些?
  3. java实现自动发送微信QQ消息(可发图片)
  4. multism同相比例运算电路与单限比较器连接问题
  5. SCI 投稿全过程信件模板
  6. 节能低电压电机驱动芯片TMC2300
  7. 等待事件enq TX row lock contention分析
  8. 1H412000机电工程专业技术——1H412030焊接技术
  9. 生鲜行业采购环节如何管理?供应商系统结算模块实现供应链管理效能成倍提升
  10. vue3 volar格式化代码