我们在BS系统的开发过程当中,总会遇到上传多个附件的问题,如何方便的能够让用户使用和查看文档中的附件,就涉及到附件链接的问题,在系统开发实际操作中,我们一般这样解决:
在
B/S
下,一般附件的处理方法是,在表单上加域
$V2AttachmentOptions
,设置其默认值为
0
,从而隐藏屏蔽掉Domino系统默认的并不好看并且一直在文档底部的附件链接,然后象下面这样自己写链接
一、只读链接
thisDb:=@ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);" ";"+");"\\";"/
");
@If(@Attachments!=0;"[<a href=\"/"+thisDb+"/0/"+@Text(@DocumentUniqueID)+"/$FILE/"+@AttachmentNames+"\" target=\"_blank\">"+@AttachmentNames+"</a
>]";"")
二、可删除链接
thisDb:=@ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);" ";"+");"\\";"/
");
@If(@Attachments!=0;"[<INPUT TYPE=checkbox NAME=\"%%Detach.1\" VALUE=\""+@AttachmentNames+"\"><a href=\"/"+thisDb+"/0/"+@Text(@DocumentUniqueID)+"/$FILE/"+@AttachmentNames+"\" target=\"_blank\">"+@AttachmentNames+"</a
>]";"")
但是,当附件的名称中包含
“#”
、
“&”
等特殊符号时(例如jeep#beijing.jpg),上面写的链接在特殊符号处就会被截断,从而导致附件不能正常打开。要解决这个问题,需要在写链接的时候把这些特殊符号进行转换,具体方法如下:
thisDb:=@ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);" ";"+");"\\";"/
");
aa:=@URLEncode("domino";@AttachmentNames);
@If(@Attachments!=0;"[<a href=\"/"+thisDb+"/0/"+@Text(@DocumentUniqueID)+"/$FILE/"+aa+"\" target=\"_blank\">"+@AttachmentNames+"</a>]";"")
转载于:https://www.cnblogs.com/haitunzhilian/archive/2009/10/27/1590508.html