【问题标题】:View and download files uploaded via a form in Kentico在 Kentico 中查看和下载通过表单上传的文件
【发布时间】:2020-12-15 20:28:25
【问题描述】:

在 Kentico 中,如何让网站用户通过表单查看和下载其他用户上传的文件?

我在 Kentico CMS 中制作了一个表格。用户可以正确填写并提交。我的表单有一个上传文件字段。 我创建了一个新页面来显示提交表单的内容。为此,我使用了“有效果的查询中继器”。 查询似乎运行良好。我编写了一个转换以表格格式显示每条记录。 除文件字段外,所有记录和字段都显示良好。我找不到生成上传文件链接以将其分配给链接标签的href 属性的方法。我使用这样的代码

<a href="https://example.com/CMSPages/GetBizFormFile.aspx?filename=<%# Eval("UploadFile1") %>"> Download File</a>"

这段代码的问题是&lt;%# Eval("UploadFile1") %&gt;返回一个这样的字符串

94e5b02d-1bcd-4341-9930-6e5ef1029d8b.pdf/MyFileName.pdf

我该如何解决这个问题?

【问题讨论】:

    标签: transformation repeater kentico


    【解决方案1】:

    使用 /CMSPages/GetBizFormFile.aspx 时,您需要提供文件名和站点名称作为查询字符串参数。文件名实际上是文件的 GUID + 扩展名。所以,链接应该是这样的:

    ~/CMSPages/GetBizFormFile.aspx?filename=3560f3ed-6a12-444e-9fc6-2447fc903a23.jpg&sitename=SiteName
    

    这里的事情是 GetBizFormFile 正在检查访问 - 用户必须登录,编辑并且必须具有分配的表单模块的权限。

    如果您想创建一个可公开访问的链接,您需要将链接直接组合到文件的磁盘位置(假设磁盘上的文件夹不安全)。默认位置是 ~//BizFormFiles。您可以在设置 -> 系统 -> 文件 -> 自定义表单文件文件夹中自定义位置。这意味着,使用存储在文件上传字段中的 GUID,您可以编写如下链接:

    ~/SiteName/BizFormFiles/3560f3ed-6a12-444e-9fc6-2447fc903a23.jpg
    

    【讨论】:

    • 非常感谢 jurajo。
    【解决方案2】:

    我的一个朋友提出了一个行之有效的解决方案!

    1- 首先获得每个人的访问权限以读取表单记录。应用程序>权限>模块>表单

    get the access to Everyone

    2- 转换代码:

    <asp:PlaceHolder ID="ph1" runat="server" Visible='<%# IfEmpty(Eval("UploadFile1"), false, true) %>'>
          <br>
          <a style="color:blue;font-weight:bolder" href=<%# "https://example.com/CMSPages/GetBizFormFile.aspx?filename=" + Eval("UploadFile1").ToString().Split('/')[0] %>>Download File: <%# Eval("UploadFile1").ToString() == "" ? "a" : Eval("UploadFile1").ToString().Split('/')[1] %></a>
    </asp:PlaceHolder>
    

    如果没有任何上传的文件,第一行是什么都不显示。

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2014-05-22
      • 2013-03-16
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多