2009-12-15 21 views
0

J'ai besoin d'un champ de fichier blob dans le cadre d'un type de contenu dans plone. BlobField de plone.app.blob devrait fournir ceci, mais je ne peux pas trouver comment obtenir une URL pour télécharger le fichier comprenant le nom de fichier original (par exemple http://plone.site/plone/obj/orig-file-name.avi). Y at-il un moyen de le faire en utilisant plone.app.blob?plone.app.blob ou z3c.blobfile?

Alternativement, il y a quelques pointeurs sur le web pointant vers plone.namedfile pour cela. plone.namedfile semble s'appuyer sur z3c.blobfile. Comment z3c.blobfile diffère-t-il de plone.app.blob?

L'une de ces méthodes est-elle meilleure que l'autre?

Vik

Répondre

1

Si vous voulez télécharger le fichier en utilisant le nom du fichier original, vous aurez besoin de quelques pièces:

  1. Assurez-vous que vous mettez primaire = True dans les paramètres du champ dans la schéma.

  2. Assurez-vous que les sous-classes de classe de votre type de contenu plone.app.blob.content.ATBlob, qui fournit une méthode index_html qui télécharge le champ principal.

  3. Assurez-vous d'ajouter le type de portail portal_type à la liste typesUseViewActionInListings dans portal_properties/site_properties.

plone.namedfile fournit un champ de fichier qui peut être utilisé avec la bibliothèque z3c.form. Il est en effet basé sur z3c.blobfile, qui fournit une interface similaire à l'objet fichier de zope.app.file. Ce n'est probablement pas ce que vous voulez si vous construisez un type de contenu basé sur Archétypes.