OVH Cloud OVH Cloud

Upload de fichier - Zope

2 réponses
Avatar
lucasledore
Bonjour à tous.

Il est assez facile en PHP d'uploader un fichier d'un client vers un
serveur en passant par un formulaire de type file. En effet, il suffit
de récupérer la variable donnant le nom temporaire du fichier sur le
serveur, et de manipuler cette variable.
En fait, je voudrais savoir s'il est possible, toujours en passant par
un formulaire file, de récupérer cette variable temporaire sous Zope,
via un Controler Script. Je n'arrive pour le moment qu'à récuperer le
vrai nom du fichier.
Le cas échéant, quelle est la méthode la plus simple et efficace pour
un upload de fichier sous Zope ?

Merci.

2 réponses

Avatar
Hervé Cauwelier
Je n'arrive pour le moment qu'à récuperer le
vrai nom du fichier.


Derrière un <input type="file" ...>, Zope te fourni un objet de type
file (ZHTTPUploadFile de mémoire) avec toute son intelligence, et
surtout les méthodes read et readlines.

Encore mieux depuis Python 2.3, file est un itérateur :

for ligne in file:
...

lira chaque ligne à la demande; comme xreadlines mais le meilleur
comportement est maintenant le plus simple (readlines chargerait tout le
fichier en mémoire).

Évidemment, ça ne t'intéresse pas si tu t'attend à un fichier binaire.

Tu n'as pas à appeler la méthode close à la fin, je le déconseille même;
laisse Zope gérer les variables qu'il a créées.

--
Hervé Cauwelier
http://www.oursours.net/

Avatar
Gilles Lenfant
Bonjour à tous.

Il est assez facile en PHP d'uploader un fichier d'un client vers un
serveur en passant par un formulaire de type file. En effet, il suffit
de récupérer la variable donnant le nom temporaire du fichier sur le
serveur, et de manipuler cette variable.
En fait, je voudrais savoir s'il est possible, toujours en passant par
un formulaire file, de récupérer cette variable temporaire sous Zope,
via un Controler Script. Je n'arrive pour le moment qu'à récuperer le
vrai nom du fichier.
Le cas échéant, quelle est la méthode la plus simple et efficace pour
un upload de fichier sous Zope ?

Merci.


Un petit tour dans le code source du fichier .../lib/python/OSF/File.py
et les templates associées t'en apprendra beaucoup.

Le plus simple étant bien entendu de créer un type File et d'utiliser
ses méthodes. Le bouzin fera tout le reste tout seul (récupération du
contenu, recherche du type MIME, ...)

--
Gilles