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

QQ登录

只需一步,快速开始

12
返回列表 发新帖

[结贴] 如何获取附件的物理路径

  [复制链接]

15

主题

101

帖子

626

积分

高级会员

Rank: 4

积分
626
 楼主| 发表于 2014-8-28 10:57:09 | 显示全部楼层
yinlun 发表于 2014-8-28 10:52
你要物理路径做什么用?

我要获取文件  只要能得到   File file = new File("附件物理路径")   只要能返回file就行了  
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-8-28 11:01:33 | 显示全部楼层
蓝天白云1233 发表于 2014-8-28 10:55
当然是下载文档用了


                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盘下看看把 是不是有个文件了
                 */
   
参考http://bbs.justep.com/thread-40457-1-1.html

评分

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

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

15

主题

101

帖子

626

积分

高级会员

Rank: 4

积分
626
 楼主| 发表于 2014-8-28 11:05:13 | 显示全部楼层
yinlun 发表于 2014-8-28 11:01
Docs docs = new Docs();
                /**
                 *  query(docId, docP ...

这个我早都看过了   不能满足我的要求    只要返回file就行了  不用下载下来   
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-8-28 11:06:55 | 显示全部楼层
蓝天白云1233 发表于 2014-8-28 10:57
我要获取文件  只要能得到   File file = new File("附件物理路径")   只要能返回file就行了  
...

下面代码可以参考下
  1. String json = row.getText("fAttachment");//获取附件关系
  2. JSONArray jsonArr = new JSONArray(json);//通过jsonstr字符串构造JSONArray对象
  3. JSONObject jsonObj = JSONObject jsonObj = (JSONObject) jsonArr.get(0);//获取jsonArr里第一个对象并把它赋值
  4. String docID = jsonObj.getString("docID");
  5. String docPath = jsonObj.getString("docPath");
  6. String docName = jsonObj.getString("docName");
  7. Doc doc = docs.query(docID, docPath, null, null, null).get(docID);
  8.                
  9. String newDocName = "d:/" + docName.substring(docName.lastIndexOf("."), docName.length());
  10.                
  11. File outPutFile = new File(newDocName);
  12.                
  13. //下载到本地文件
  14. doc.download(new FileOutputStream(outPutFile));
复制代码
QQ:179785966
回复 支持 反对

使用道具 举报

15

主题

101

帖子

626

积分

高级会员

Rank: 4

积分
626
 楼主| 发表于 2014-8-28 11:11:04 | 显示全部楼层
yinlun 发表于 2014-8-28 11:06
下面代码可以参考下

不过还是谢谢你   我不要这个下载   我要获取附件的File file    你这个是直接下载下来了  这个我会   在x5.2.5中有没有获取附件真实物理路径的方法  
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35932
发表于 2014-8-28 13:43:56 | 显示全部楼层
没有提供直接获取物理路径的API,而且在物理路径中存的文件名字都是编过码并且没有后缀的,不推荐直接去物理路径中取文件

具体要做什么?返回File后做什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

15

主题

101

帖子

626

积分

高级会员

Rank: 4

积分
626
 楼主| 发表于 2014-8-28 14:14:58 | 显示全部楼层
jishuang 发表于 2014-8-28 13:43
没有提供直接获取物理路径的API,而且在物理路径中存的文件名字都是编过码并且没有后缀的,不推荐直接去物 ...

那我有什么方法可以在x5.2.5中直接获取物理路径   
我要在移动端下载附件?不过没有用x5自带的android客户端   
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35932
发表于 2014-8-28 14:36:40 | 显示全部楼层
在x5中(不一定在x5提供的API中)直接调用x5提供的API就可以直接下载参考
http://bbs.justep.com/forum.php? ... 4&pid=165003927

没有直接获取物理路径的方法,下载x5提供的API就可以实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 21:59 , Processed in 0.104537 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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