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

平台有提供对应的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. java 上传文件服务_java代码实现上传文件到文档服务器、下载文档服务器文件

    需要完成下载->修改->上传这三个步骤 平台有提供对应的api吗? /** 首先我们来理解下关于文档的api 文档相关api都在这2个package下面 package :com.just ...

  2. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  3. java程序 部署服务器_Java代码如何布署到云服务器

    Java代码如何布署到 前两种方式的优点是方便快捷,缺点是要花几元到几十块钱.手动部署方式正好与前两种方式相反,它的优点是免费,同时修炼了你的技术,缺点就是比较费事. 如果不差钱或者时间紧迫的话,你可 ...

  4. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  5. java web文件上传详解_java web图片上传和文件上传实例详解

    java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...

  6. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  7. Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器

    Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...

  8. php flash上传进度条,PHP_PHP+FLASH实现上传文件进度条相关文件 下载,PHP之所以很难实现上传进度条 - phpStudy...

    PHP+FLASH实现上传文件进度条相关文件 下载 PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候,要等到文件全部送到服务器之后,才执行相应的php文件.在这之前,文件数据保存在一个 ...

  9. 上传文件到服务器的命令,ftp上传文件到服务器命令

    ftp上传文件到服务器命令 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...

最新文章

  1. C++ 继承与多继承
  2. make -j8以及linux下查看cpu的核数
  3. 唯品会HDFS性能挑战和优化实践
  4. redis持久化的几种方式
  5. Linux——快照与克隆
  6. 《化工原理》课程设计说明书
  7. dev c++代码自动补全_让代码自动补全的全套流程
  8. Guava翻译系列之EventBus
  9. iPhone Xs发布会其实是苹果计算机视觉技术发布会!
  10. 逻辑回归模型_逻辑回归模型
  11. 2020-07-07
  12. matlab方差 anov,方差分析
  13. SEO培训一家之言 素老胡huxingyu
  14. read.html5.qq.com,从QQ浏览器缓存文件中提取出完整的视频
  15. PhotoShop中合并形状颜色会变化的问题
  16. js如何复制一个对象?
  17. 1000句英语经典口语(6)
  18. MEM/MBA英语基础(01) 10类词性说明
  19. 区块链基本概念学习笔记
  20. 自适应直方图均衡(CLAHE) 代码及详细注释【OpenCV】

热门文章

  1. 【小白入门】用Python增加文章阅读量
  2. 关于谷歌眼镜的几点常见问题
  3. MFC加载GIF动画
  4. 万用表和示波器测量的区别?简单看完,让你少走弯路
  5. 微信小程序(一)初始微信小程序
  6. 基于lucene的案例开发:纵横小说数据库操作
  7. 【pytest】pytest的Hook函数详解
  8. 2021404209陈聪blog
  9. 基站通信设备接地引起的串口通信异常分析
  10. js获取当前日期所在的周一到周日的日期,以及星期几