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

QQ登录

只需一步,快速开始

查看: 8499|回复: 10

[结贴] 能不能再页面上拿到附件的名称、大小和实际路径?

[复制链接]

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
发表于 2014-2-18 17:54:29 | 显示全部楼层 |阅读模式
版本: X5.2.5 小版本号:
数据库: MySQL 服务器操作系统: 应用服务器:
客户端操作系统: Windows XP 浏览器:
RT 使用attachmentEditor组件 能不能在页面拿到上传附件的名字、附件大小和附件的实际文件路径  因为需要这三个东西拿来发送邮件

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-19 09:07:35 | 显示全部楼层
可以。
  1. //获得附件字段的内容
  2.                 var json = justep.xbl("ImageDEMO_Doc").getValue('fAttachment');
  3.                 if (json != "") {
  4.                         var jsonList = eval("(" + json + ")");
  5.                         // 获得docName
  6.                         var docName = jsonList[0]["docName"];
  7.                         // 获得size
  8.                         var size = jsonList[0]["size"];
  9.                         // 获得docPath
  10.                         var rootPath = jsonList[0]["docPath"];
  11.                         // 获得fileID
  12.                         var fileID = jsonList[0]["fileID"];
  13.                         // 获得文档url
  14.                         var url = justep.Doc.getURLByFileID(rootPath, fileID);
  15.                         ;
复制代码
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-19 09:27:26 | 显示全部楼层
fengwei 发表于 2014-2-19 09:07
可以。

谢谢 可以获得附件的名字和大小,但是并不能获得附件的实际路径 比如"c:/test.txt" 如果用js不能获取能在后台拿到么
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-19 09:59:46 | 显示全部楼层
mj19881029 发表于 2014-2-19 09:27
谢谢 可以获得附件的名字和大小,但是并不能获得附件的实际路径 比如"c:/test.txt" 如果用js不能获取能在 ...

你在前台不该获得服务器的物理路径的,作为附件发送,你在后台用justep.doc的API获得file对象就可以了。然后 DataSource source  =   new  FileDataSource(file);
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-19 10:46:55 | 显示全部楼层
fengwei 发表于 2014-2-19 09:59
你在前台不该获得服务器的物理路径的,作为附件发送,你在后台用justep.doc的API获得file对象就可以了。 ...

两个问题:1.如何获取file对象  2. 在其他模块怎么引用doc的API 我在其他模块新建Docs 没有提示
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-19 11:56:57 | 显示全部楼层
mj19881029 发表于 2014-2-19 10:46
两个问题:1.如何获取file对象  2. 在其他模块怎么引用doc的API 我在其他模块新建Docs 没有提示 ...

以下方法都可以查到文档对象。具体参考API文档。 在java文件中
import com.justep.doc.Doc;
import com.justep.doc.Docs;就可以使用docs doc了,设置为源码路径方便编码。

queryByDocID(String fileID)
查询符合条件的文档,装载到当前docs容器中,docs中原有的数据会丢失
参数:
String fileID 文档id
返回:
Docs

--------------------------------------------------------------------------------

public Docs queryByDocPath(String docPath)
查询符合条件的文档,装载到当前docs容器中,docs中原有的数据会丢失
参数:
String docPath 文档的路径
返回:
Docs

public Docs queryByFileID(String fileID)
查询符合条件的文档,装载到当前docs容器中,docs中原有的数据会丢失
参数:
String fileID 文档id
返回:
Docs
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-19 12:22:55 | 显示全部楼层
fengwei 发表于 2014-2-19 11:56
以下方法都可以查到文档对象。具体参考API文档。 在java文件中
import com.justep.doc.Doc;
import com.j ...

您说的这些方法我在API里怎么没找到, 是哪个类的方法?
还有,即便获取到Docs了 在API里我也没找到获取附件的实际物理路径的方法?
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-19 13:45:03 | 显示全部楼层
mj19881029 发表于 2014-2-19 12:22
您说的这些方法我在API里怎么没找到, 是哪个类的方法?
还有,即便获取到Docs了 在API里我也没找到获取 ...

X5api biz下java中的com.justep.doc包。 doc类和docs类。
API获取不到物理路径,因为文档中心还涉及到权限管理的问题,上传到文档中心的文件是随机存储的,而且文件名UUID了。
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-19 14:22:00 | 显示全部楼层
fengwei 发表于 2014-2-19 13:45
X5api biz下java中的com.justep.doc包。 doc类和docs类。
API获取不到物理路径,因为文档中心还涉及到权 ...

恩 也就是说 使用attachmentEditor附件组件拿不到附件的实际物理路径是吧。
非常感谢您的回答!!
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-19 15:48:34 | 显示全部楼层
  1. //对,拿不到物理路径,但是可以得到File对象,自己new一个出来就可以了。
  2.             Docs docs = new Docs();
  3.         Doc doc=docs.query(docId, null, null, null, null);
  4.         File file =new File("c:/temp/"+doc.getsDocName());
  5.         //这里使用了一个临时目录,转存了这个文件。
  6.         doc.download(new FileOutputStream(outPutFile));
  7.        
  8.         //这样你可以拿file对象去发附件了。
  9.         DataSource source  =   new  FileDataSource(file);
复制代码
要不要这样写就看你是不是要附件来自于文档中心了。
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 00:36 , Processed in 0.085824 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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