我需要以与Plone 3.3到4.2兼容的方式在 plone.app.registry 二进制数据中存储。
只需使用schema.Byte
类型,我就可以在Plone 4.2上快速实现此功能(虽然不是非常用户友好,但是可以工作),但在Plone 3.3上却无法。
在Plone 3.3上,注册表令人讨厌的是文件上传控件,但是当我尝试获取保存的数据时,我发现它只是存储了一个字符串,如:'<... HTTPFileUpload...>'
...因此是对象的python repr。
我怎样才能解决这个问题?我需要将plone.namedfile产品与collection.z3cform.filewidget一起使用?
最佳答案
从plone.formwidget.namedfile 1.0.12开始,您还可以在ASCII字段上使用该假发。然后将数据转换为base64。 Plone 5将该功能用于其站点徽标,该徽标存储在注册表中。
有关示例,请参见该功能的Plone 4反向端口:https://github.com/collective/collective.sitelogo
特别:
图片的ASCII
字段的用法:https://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/interfaces.py#L14
将ASCII
字段的控制面板小部件更改为NamedImageFieldWidget
:https://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/controlpanel.py#L19
关于plone - 将文件内容(二进制数据)存储在plone.app.registry中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11637814/