2012-07-24 189 views
2

我需要以兼容於Plone 3.3到4.2的方式存儲plone.app.registry二進制數據。將文件內容(二進制數據)存儲在plone.app.registry中

使用簡單的schema.Byte類型我可以在Plone 4.2上快速找到這個(不是非常用戶友好,但它工作),但不能在Plone 3.3上。

在Plone的3.3註冊表displyaing文件上傳控件,但是當我試圖讓保存的數據,我發現它只是存儲就像一個字符串:

'<... HTTPFileUpload...>'

...所以Python對象的再現。

我該如何解決這個問題?我需要使用plone.namedfile產品collective.z3cform.filewidget

回答

1

由於plone.formwidget.namedfile 1.0.12您也可以在ASCII字段上使用該wigets。數據然後轉換爲base64。 Plone 5將該功能用於存儲在註冊表中的網站徽標。

有關示例,看到該特徵的Plone 4中反向移植:https://github.com/collective/collective.sitelogo

特別:https://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/interfaces.py#L14

更改ControlPanel控制插件爲ASCII字段:

爲您的圖像的ASCII字段的使用到NamedImageFieldWidgethttps://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/controlpanel.py#L19

4

plone.app.registry並非真正用於存儲二進制數據。它被設計成簡單,輕便和防移動的。

你想用這個做什麼?可能有更好的方法。

+1

我需要存儲一個不是CMS內容的文件,但需要用於後端配置。 我能找到的唯一方法是將其作爲假內容類型(我喜歡的東西)或Zope「文件」存儲... – 2012-07-25 06:59:14

1

好吧,似乎你可以在Plone 3上也有相同的行爲;只需要升級plone.z3cform

相關問題