Kentico-BizForm文件字段附件/上传URL

时间:2018-10-02 21:24:45

标签: asp.net kentico

对于使用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,如何从后面的代码中进行访问。

感谢您提供的任何帮助。

1 个答案:

答案 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>