Accueil » Zope » Forum Zope » Forum Général Zope » ZOPE upload de fichier

 • ZOPE upload de fichier

Document Actions
Réponses: 6   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • ZOPE upload de fichier

Posté par laurent1024 le 16/07/2008 16:57
Bonjour.
Dans mon application web, il est possible d'uploader des fichiers. Si on ajoute de très gros fichiers (500 Mo, 1 Go), le serveur Zope ne répond plus, car il stocke en mémoire tout le fichier et sature en mémoire.
Est-il possible de limite la taille des fichiers à uploader ?
Existe-il une méthode pour uploader de gros fichiers sans que le serveur Zope se plante ?
D'avance merci pour vos réponses.
  •  • Re: ZOPE upload de fichier

    Posté par ychaouche le 16/07/2008 17:28
    Salut,

    Voici le code que j'ai écrit pour spécifier une taille max sur les upload de logo :

    code:
        def donneesSontBonnes(self,kw):
            """
            """
            logo = kw['p_logo']
            if not logo :
                return True
            
            # Se placer à la fin du fichier
            logo.seek(0,2)
            # Calculer la taille
            taille = logo.tell()
            # Revenir au début du fichier, sinon on aura copié du vide vers le FS
            logo.seek(0,0)
            getLogger('fiche').debug("taille du logo "+str(taille))
            if taille > POIDS_LOGO_MAX:
                msg="Le logo dépasse la taille autorisé de %sKo." % (POIDS_LOGO_MAX / 1024)
                # msg = cgi.urllib.quote(msg)
                self.setSession('message',msg)
                return False



    La méthode donneesSontBonnees est appelée par la méthode traiterFormulaire de mon objet qui représente la page visualisée.

    HTH.
  •  • Re: ZOPE upload de fichier

    Posté par laurent1024 le 16/07/2008 17:55
    Merci pour ce code.
    Mais mon problème se situe avant ça en fait :
    l'utilisateur envoie son formulaire avec un gros fichier mais le script qui doit s'exécuter par la suite (celui qui est dans le action="...";) n'est pas appelé, c'est le serveur Zope qui rame avant de lancer le script traitant le formulaire.
  •  • Re: ZOPE upload de fichier

    Posté par ychaouche le 16/07/2008 18:33
    Oui exact, je n'ai pas tilté.

    Il semblerait que ce soit un bug de Zope ou de python qui traine depuis plusieurs années :
    https://bugs.launchpad.net/zope3/+bug/98024
  •  • Re: ZOPE upload de fichier

    Posté par laurent1024 le 17/07/2008 09:12
    Ok merci pour l'info. Dans mes recherches je suis tombé sur les même informations.
    Donc a priori il n'a pas de solution à mon problème :(
  •  • Re: ZOPE upload de fichier

    Posté par ychaouche le 17/07/2008 10:13
    Salut,

    Il y a une entrée dane le blog de Tarek qui en parle, et un commentateur a suggéré un outil flash qui, grace à son API (Ajax), te permet de connaitre la taille du fichier avant même qu'il soit uploadé. Je ne sais pas si ça te conviens.

    Ta solution pourrait donc bien être ça http://swfupload.org/documentation/howitworks

    (pris depuis http://tarekziade.wordpress.com/2007/09/10/how-to-handle-large-files-in-plone/)
  •  • Re: ZOPE upload de fichier

    Posté par laurent1024 le 17/07/2008 10:32
    Merci beaucoup pour cette piste, je vais regarder tout cela de plus près. Je suis quand même étonné que Zope ne permettent pas de fixer des limites sur la taille des upload.