对于使用File
控件的Upload file
类型的BizForm字段,该字段的记录提交数据将被保存为类似于{名称为a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf
,其字段为代码名称为test.pdf
。我正在尝试获取给定BizForm提交的上载文档的URL。尝试使用以下URL访问附件会导致404错误:
Foo
如何构建URL来访问给定BizForm提交的https://somesite.com/getattachment/a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf
https://somesite.com/getattachment/a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf.aspx
https://somesite.com/CMSPages/GetFile.aspx?guid=a858eda6-4699-4bda-81d0-1b85d69aa9a7
字段,该字段将File
控件用于代号为Upload file
的字段?和/或如果我在类似Foo
处理程序的情况下知道BizForm提交的ID,如何从后面的代码中进行访问。
感谢您提供的任何帮助。
答案 0 :(得分:1)
尝试
https://somesite.com/CMSPages/GetBizFormFile.aspx?filename=a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf
您可以尝试以下宏:
{%
row = Siteobjects.Forms["FormCodeName"].Items.Where("ItemId = 123").FirstItem;
row["attachmentFieldname"]
#%}
这是指向work with biz form files的旧链接,大部分仍然有效。它会给出一些想法。这是指向GetBizFormFile.aspx.cs
的链接使用API应该很简单:
var filepath = BizFormItemProvider.GetItems(formClassName)
.Where("itemid = 123")
.AsEnumerable().FirstOrDefault().GetValue("FileField")
您将获得相同的格式:<GUID>.<extension>/<orig_name>.<extension>
。然后,您可以解析并使用其中的网址~/CMSPages/GetBizFormFile.aspx?filename=<GUID>.<extension>