起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1241|回复: 0

[分享] 获取文档中心附件的下载地址,在IE直接打开并下载

  [复制链接]

109

主题

1191

帖子

3851

积分

论坛元老

Rank: 8Rank: 8

积分
3851
QQ
发表于 2014-3-4 15:11:30 | 显示全部楼层 |阅读模式
//通过调用createAttachmentDowloadAddress()方法获取该附件的下载地址
1.fattachment 是这种格式的
String fattachment = "[{"docID":"C60B2322B74000019A5ED0805620CB70","docName":"hello.png","size":8918588,"fileID":"16-defaultDocNameSpace","docPath":"/defaultDocNameSpace/B7DD46ED17C54C778E9EF8A0E4F0B8D6/85FB6C51B02C4B59BEBF55C35990EB12","time":"2014-02-19T17:40:26.159Z"}]";  

2.我把docInfo变成了这种格式
String docInfo ={"docID":"C60B2322B74000019A5ED0805620CB70","docName":"hello.png","size":8918588,"fileID":"16-defaultDocNameSpace","docPath":"/defaultDocNameSpace/B7DD46ED17C54C778E9EF8A0E4F0B8D6/85FB6C51B02C4B59BEBF55C35990EB12","time":"2014-02-19T17:40:26.159Z"}

3.我把docInfo变成了一个json对象,并获取到docPath,fileID的值

4.根据帖子中4楼的做法,导入DocAdapter,调用queryNoPermissionHost(Boolean isHttps, String docPath, String urlPattern, Boolean isFormAction)方法(没有限制权限
java代码实现上传文件到文档服务器、下载文档服务器文件http://bbs.justep.com/forum.php?mod=viewthread&tid=40457


5.关于urlPattern的值我是看了看 \system\service\doc\docUtil.js中的
getURLByFileID : function(docPath, fileID, versionID, partType) {
                var versionID = versionID ? versionID : "last";
                var partType = partType ? partType : "content";
                return this.getdocServerAction(docPath, "/repository/file/download/" + fileID + "/" + versionID + "/" + partType );        }       
这些代码才得出的

6.得到的docUrl是这样的
/UI/system/service/doc/common/uploadDoc.j?dochost=http://localhost:8080/DocServer/repository/file/download/18-defaultDocNameSpace/last/content?key=63b386a3db4f2e24be757335b7a5fb8b9d566a602463c1becb09ca378a0a8294f354cb841844dc7f16fc336669bb60037455b6a122dfc69f27bf84c5d16a8511a02f8d2ad476cf3a5aab6cd57d647193afa74a58262fd3d1424f21972204e88f98d75f643e21183fb189a56812b5377f

7.然后我截取了一下,得到的
http://localhost:8080/DocServer/repository/file/download/18-defaultDocNameSpace/last/content?key=63b386a3db4f2e24be757335b7a5fb8b9d566a602463c1becb09ca378a0a8294f354cb841844dc7f16fc336669bb60037455b6a122dfc69f27bf84c5d16a8511a02f8d2ad476cf3a5aab6cd57d647193afa74a58262fd3d1424f21972204e88f98d75f643e21183fb189a56812b5377f

8.或得到的http://localhost:8080是你文档配置中文档服务器的地址 ,这样就能复制然后在地址栏里粘贴enter就会显示下载提示
public static String createAttachmentDowloadAddress(String fattachment) {
                String docUrl = null;
                try {
                        String docInfo = fattachment.substring(1, fattachment.length() - 1);
                        JSONObject obj = new JSONObject(docInfo);
                        String docPath = obj.get("docPath").toString();
                        String fileID = obj.get("fileID").toString();
                        docUrl = DocAdapter.queryNoPermissionHost(false, docPath,
                                        "/repository/file/download/" + fileID + "/last/content",
                                        true);
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return docUrl.substring(50);
        }
分享的内容有些可能考虑的不周全 ,望见谅,请大家多多指教!




评分

参与人数 1 +12 收起 理由
jishuang + 12 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 10:31 , Processed in 0.082087 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表