java 上传文件服务_java代码实现上传文件到文档服务器、下载文档服务器文件
需要完成下载->修改->上传这三个步骤
平台有提供对应的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代码实现上传文件到文档服务器、下载文档服务器文件相关推荐
- sharepoint 2016 学习系列篇(21)-文档库应用篇-(3)在文档库中上传文档和下载文档
在文档库中,上传文档到文档库中,有一下几种方式: 第一种,通过文档库页面,点击上载: 点击"浏览",选择需要上载的文件,点击确定 第二种,通过文档库页面,拖文档的方式上载: 在电脑 ...
- java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务平台源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...
- 基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA会展中心招商服务平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...
- 计算机毕业设计Java“花园街道”社区医院服务系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java"花园街道"社区医院服务系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java"花园街道"社区医院服务系统(源码+系统+m ...
- 计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档)
计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java高校微后勤服务平台(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S ...
- 通过一个最简单的HTTP服务器工具软件(如http文件服务器-hfs2),建立一个临时的HTTP文件服务,使能通过手机浏览器等访问下载你的计算机中指定的文件
通过一个最简单的HTTP服务器工具软件(如http文件服务器-hfs2),建立一个临时的HTTP文件服务,使能通过手机浏览器等访问下载你的计算机中指定的文件 1.先到网上下载http文件服务器-hfs ...
- java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...
- java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- ajax下载文档 ClientAbortException: java.net.SocketException: Connection reset by pee
众所周知ajax是使用了浏览器内部的XmlHttpRequest对象来传输XML数据的.既然是Xml的数据传输,那么传输的数据肯定是文本的,而文件上传则需要传输二进制的数据,显然用ajax是不可能的. ...
最新文章
- caffe 下一些参数的设置
- leach协议matlab仿真代码
- debain mariadb10配置root
- 多数据中心的高可用结构【环状星型数据库架构】
- Qt学习笔记-各种对话框基本使用
- 321电商学院 与华中师大联手 - 2014-10-22
- SQL Server数据同步
- vbs如何调用c语言函数,VBS编程教程 (第6篇)
- java 循环依赖_Java详解之Spring Bean的循环依赖解决方案
- Publish Over SSH 本地安装
- 最适合程序员转行的10大职业
- 【JavaSE】十二生肖带你走进枚举类
- 日常pytho3练习脚本之--两个逗比聊天机器人
- 美世家无线点菜android,美世家无线点菜成功实现iPad mini平台应用
- python少儿编程课件ppt_《Python 少儿趣味编程》
- Java网上投票系统毕业设计
- interrupt()方法理解和实例
- Refactor反编译C#程序
- 烤仔建工 | Wearable Dao时装秀倒计时!在元宇宙里穿上“中国红”!
- IRremoteESP8266库 红外控制空调方法