$ file附件无法正常工作的URL

时间:2015-05-21 07:10:18

标签: javascript xpages lotus-notes

我在生成存储在便笺文档中的附件的URL时出现了一个奇怪的问题。

显示notes文档的Xpage有一个repeat,它使用以下代码从body字段中检索嵌入的对象:

var doc:NotesDocument = docEmail.getDocument();
if (doc.hasEmbedded()){
    var rtItem:NotesRichTextItem = doc.getFirstItem("Body");
    return rtItem.getEmbeddedObjects()
}

然后我有一个隐藏的输入字段,用于存储此代码生成的URL(colBodyAttachments是重复集合名称):

var doc:NotesDocument = docEmail.getDocument();
var dbComms = doc.getParentDatabase();

var dbServer = ReturnSvrHostName(dbComms.getServer())
var dbPath = @ReplaceSubstring(dbComms.getFilePath(), '\\', '/');
var attachmentName = colBodyAttachments.getName()

return "http://" + dbServer + "/" + dbPath + "/0/" + doc.getUniversalID() + "/$FILE/" + attachmentName

在99.9%的文档中工作正常但是当我的附件名称如下时,它似乎无法正确生成URL:" 120531.Whytes Invoice#701537.pdf"

生成的URL如下所示:

http://website.com/database.nsf/0/ABA667304AB04454CC257A4F0015D321/ $ FILE / 120531.Whytes%20Invoice%20#701537.pdf

它不会在#之后对%20进行编码,即使我尝试这样做,我仍然会得到“未找到项目的例外”#39;存在哈希时是否存在编码URL的问题?或者,当存在哈希时,多米诺骨牌会找到附件?

1 个答案:

答案 0 :(得分:6)

#符号会破坏网址。它是位置和该位置内的位置之间的分隔符。你需要对它进行编码。 xpages附件也遵循略有不同的格式。请参阅:http://www.wissel.net/blog/d6plinks/SHWL-86QKNM