关于附件拷贝的问题(着急)

wjzmy 2005-08-16 11:09:27
关于这个问题,我查找了好多相关的东西,至少这里的几篇文章我都看过了,不过自己太笨,所以至今还没有解决这个问题。

我的问题如下:
1.用户需求:在收文管理中附加入扫描的文件,要求显示文件名,并以文件名字作为连接。
2.在收文管理中有“转入任务”按钮,点击按钮后要求把收文中的部分内容带入任务模块,附件属于其中之一,要求可以访问和下载。

针对以上的问题,我决定可行的解决方法有三种:
1.通过拷贝条目(copyallitems),然后把代表文件名的域拷贝到任务的相应的域值中,这种解决方法存在这样的问题,就是在用户刚刚转入任务的时候可以见到这个附件,并且可以访问,但是当用户传递给下一个人的时候,附件文件就被清空了。
2.通过“copytodatabase”来实现,我不大明白,不大会用。
3.先把收文的附件下载到本地,然后再通过代码上传给任务模块,但是当我下载到本地不同位置的的时候,都会出现错误的提示:一次是“文件无法被创建<c:\>”;另一次是“拒绝访问数据<D:\原dell机器的d盘\新建文件夹>”
...全文
273 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjzmy 2005-08-18
  • 打赏
  • 举报
回复
rugl(西山老幺) :你好,你说的“把原来文档的链接拷贝到新的文档中了”和“注意更新这个链接”我都不大明白什么意思,我对怎么拷贝连接挺迷糊的。
rugl 2005-08-17
  • 打赏
  • 举报
回复
第一种方法应该是可以的,我在R6下实现过,在R5下应该也可以。

需要注意的是,如果附件链接是自己写的话,很可能把原来文档的链接拷贝到新的文档中了,要注意更新这个链接。
wjzmy 2005-08-17
  • 打赏
  • 举报
回复
anp824(朋子):你好,我试过了,好象当时带过来的只是附件的名称,而连接似乎没有拷过来!查看Evaluate("@AttachmentNames",doc)时为空!
anp824 2005-08-16
  • 打赏
  • 举报
回复
"运行受限制的代理"置为“*”看看
anp824 2005-08-16
  • 打赏
  • 举报
回复
呵,510啊,是没有这个选择,tnda说的去服务器配置文档,“安全性”-“代理限制”吧好像
虎头是我 2005-08-16
  • 打赏
  • 举报
回复
5.10不需要,只需要设置服务器配置文档,的安全选项,
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
anp824(朋子) :你好,我的designer是5.10也是在那里设置安全吗?我怎么找不到?
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
anp824(朋子) :你好,第一种方法中,我的文档id和连接都不应该有问题呀,因为在刚刚转入任务中的时候都是好用的,只是再传递的时候才消失的!
anp824 2005-08-16
  • 打赏
  • 举报
回复
第一个方法我们也试过,就是受到的来文转入到收文流转中,看看你附件的连接是不是有问题,尤其文档id;
安全在代理属性的第二个符签“设置运行时安全等级”
虎头是我 2005-08-16
  • 打赏
  • 举报
回复
推荐第3种,

因为前面2种,把附件在N个文档里面拷贝,可能会造成数据库容量庞大,

至于怎么下载附件,附送一个附件拆离函数,

public void DocumentExtractFile(Document doc,String dir){
/*
名称:将文档中的附件,下载到指定的目录中
作者:tnda@163.com
时间:2005.07.31
输入:
输出:
*/

try{
if (doc.hasEmbedded()) {
Vector fileNameList = session.evaluate("@AttachmentNames",doc);
String fileName = "";
for(int i=0 ; i<fileNameList.size(); i++){
fileName = (String)fileNameList.get(i);
EmbeddedObject file = doc.getAttachment(fileName);

//判断是否有重名的文档
File fileNew = new File(dir+"\\"+fileName);

//判断文件字节是否相同,如果自己相同,则是同一个文档,不保存
if(file.getFileSize() == fileNew.length()){
continue;
}

int nn = 1;
while(fileNew.exists()){




int n1 = fileName.indexOf(".");

if(n1 == -1){
fileName = fileName + String.valueOf(nn);
}else{
String s1 = fileName.substring(0,n1)+String.valueOf(nn);
String s2 = fileName.substring(n1+1);
fileName = s1 + "."+s2;
}

nn ++;
fileNew = new File(fileName);
}


System.out.println("正在拆离文件:"+dir+"\\"+fileName);
file.extractFile(dir+"\\"+fileName);
}
}
}
catch(Exception e){
System.out.println("拆离文档失败!");
}

}
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
anp824(朋子) :你好,你的建议我不大明白。你说的第一个打开那个表是什么意思?你说的3的安全是在哪里选呀?
anp824 2005-08-16
  • 打赏
  • 举报
回复

第1个 应该可以的需要你全部拷之后打开那个文档而不是表
第3个 应该是写代理下载到服务器的某个目录下面,需要将你的代理安全选为2或者3,1是没有权限的
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
mason520(林帆) :你好,请问在哪里调这个代理的运行等级呀!
mason520 2005-08-16
  • 打赏
  • 举报
回复
第三种方法,请把代理运行等级调为3;因为汲及安全性的问题,所以要把代理运行等级调为3
anp824 2005-08-16
  • 打赏
  • 举报
回复
呵,我这儿没有510的环境,我就看了605的给你说了那个配置,可能有问题
第一种方法你用一个计算域(@AttachmentNames)先看看,附件是否拷过来了,如果已经拷过来,而在递交的之后不能发现的化,你可以跟一下你递交的代码,看看附件是什么时间丢掉的。
mason520 2005-08-16
  • 打赏
  • 举报
回复
第一种方法,传递的时候消失?为什么?
调用copyallitems方法的时候,你是否保存了文档??
在传递前到CS下查看该笔文档看是否有需要的$FILE域,传递后再次查看该文档是否有需要的$FILE域;然后再查找原因。
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
anp824(朋子) :你好,"运行受限制的代理"置为“*”不好用,还是提示“拒绝访问数据”
wjzmy 2005-08-16
  • 打赏
  • 举报
回复
anp824(朋子) :你好,你有看内到这段话吗?第一种方法中,我的文档id和连接都不应该有问题呀,因为在刚刚转入任务中的时候都是好用的,只是再传递的时候才消失的!

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧