如何使用plone.formwidget.multifile访问上载的文件

时间:2013-07-24 05:59:32

标签: plone dexterity

我有一个使用plone.formwidget.multifile.MultiFileFieldWidget的自定义Dexterity类型:

class ITestimony(form.Schema):
    ...
    form.widget(files=MultiFileFieldWidget)
    files = schema.List(
        title=_(u"Files"),
        value_type=NamedFile()
    )

编辑项目时,一切顺利:

enter image description here

以下是我尝试从https://developer.plone.org/reference_manuals/external/plone.app.dexterity/advanced/files-and-images.html借用的相关视图模板:

<fieldset tal:condition="context/files">
<legend>Attached Files</legend>
  <ul>
  <tal:files repeat="item context/files">
    <li><a href=""
         tal:attributes="href string:${context/absolute_url}/@@download/files/${item/filename};"
         tal:content="item/filename">Attached File</a></li>
  </tal:files>
  </ul>
</fieldset>

我想通过点击链接下载附件。但是我的当前模板出错:

  

AttributeError:'list'对象没有属性'getSize'

enter image description here

如何下​​载上传的文件?

2 个答案:

答案 0 :(得分:2)

实际上答案来自http://josh.postach.io/multiple-file-upload-custom-dexterity-content-types-plone-5-02a

以下代码段适用于我:

<fieldset tal:condition="context/files">
<legend>Attached Files</legend>
<ul>
  <tal:files repeat="item context/files">
  <li><a href=""
    tal:attributes="href string:${context/absolute_url}/@@edit/++widget++form.widgets.files/@@download/${repeat/item/index}"
    tal:content="item/filename">Attached File</a></li>
  </tal:files>
</ul>
</fieldset>

尽管在这里使用了@@edit,但希望我们能尽快获得更好的plone.formwidget.multifile版本或相关软件包。

答案 1 :(得分:0)

有关如何使用敏捷处理文件的一些注意事项如下:

http://developer.plone.org/forms/files.html

具体来说,构建下载网址:

http://developer.plone.org/forms/files.html#connstring-download-urls

@@download帮助者视图)