【问题标题】:$File URL to attachment not working correctly附件的 $File URL 无法正常工作
【发布时间】:2015-05-21 07:10:17
【问题描述】:

我在生成存储在笔记文档中的附件的 URL 时遇到了一个奇怪的问题。

显示注释文档的 Xpage 有一个重复,它使用以下代码从正文字段中检索嵌入的对象:

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 进行编码,即使我尝试这样做,我仍然会收到“未找到项目异常”。存在哈希时编码 url 是否存在问题?或者当散列存在时用多米诺骨牌查找附件?

【问题讨论】:

  • 您是否尝试使用 XSPUrl.encodeParameter 来获取编码字符串?
  • 我看对了,谢谢

标签: javascript xpages lotus-notes


【解决方案1】:

# 号会中断 URL。它是一个位置和该位置内的一个地方之间的分隔符。您需要对其进行编码。 xpages 附件的格式也略有不同。见:http://www.wissel.net/blog/d6plinks/SHWL-86QKNM

【讨论】:

  • 谢谢,我觉得有点傻。我完全忘记了您使用 # 来指定 URL 的锚部分的事实。再次使用上面 Torsten 建议的 XSPUrl.encodeParameter。
猜你喜欢
  • 2020-06-03
  • 1970-01-01
  • 2021-04-27
  • 2013-05-09
  • 2019-02-15
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多