2

我需要以从 Plone 3.3 到 4.2 兼容的方式存储plone.app.registry二进制数据。

只需使用一种schema.Byte类型,我就可以在 Plone 4.2 上快速实现这一点(不是非常用户友好,但它有效),但在 Plone 3.3 上却不行。

在 Plone 3.3 上,注册表正在显示文件上传控件,但是当我尝试获取保存的数据时,我发现它只是存储了一个字符串,例如:

'<... HTTPFileUpload...>'

...所以一个对象的python repr。

我怎样才能解决这个问题?我需要使用plone.namedfile产品和collective.z3cform.filewidget吗?

4

3 回答 3

4

plone.app.registry 并不是真正为存储二进制数据而设计的。它的设计简单、轻巧且防迁移。

你想用这个来达到什么目的?可能有更好的方法。

于 2012-07-24T19:57:42.960 回答
1

好的,看来您在 Plone 3 上也可以有相同的行为;只需要升级 plone.z3cform

于 2012-07-25T09:09:00.750 回答
1

由于 plone.formwidget.namedfile 1.0.12 您也可以在 ASCII 字段上使用该 wigets。然后将数据转换为 base64。Plone 5 将该功能用于其站点徽标,该徽标存储在注册表中。

例如,请参阅该功能的 Plone 4 backport:https ://github.com/collective/collective.sitelogo

尤其:

ASCII图片字段的用法: https ://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/interfaces.py#L14

ASCII将字段的控制面板小部件更改为NamedImageFieldWidgethttps ://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/controlpanel.py#L19

于 2015-10-28T11:26:44.363 回答