L’idée
Cet exemple consiste à montrer comment uploader un fichier vers le serveur.
Dans mon cas,
- on choisit le fichier ;
- on appuie sur « valider ;
- les informations sur le fichier s’affiche en bas de cette page ;
- un lien permet de visualiser le fichier ;
- un autre lien permet de le télécharger.
En pratique, le programme commence par lire le fichier sélectionné. Ensuite, il le copie dans le serveur dans le dossier « static/upload ».
Le code
import cherrypy, os mapageIndex=""" <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Illustration d'un upload</title> </head> <body> <h2> Uploader un fichier </h2> <hr> <form action="index" method="post" enctype="multipart/form-data"> <br> <input type="file" name="myFile"><br> <br> <input type="submit" name=boutonChoisir> </form> <hr> """ mapageUpload=""" <body> <h2> Informations sur le fichier </h2> Taille: %s<br> Nom: %s<br> Mime-type: %s <br> <br> <a href=%s target="_blank">Visualiser le fichier</a> <br> <a href=%s download>Télécharger le fichier</a> """ finpage=""" </body> </html> """ class monSite(): #----------------- index @cherrypy.expose def index(self,boutonChoisir=None,myFile=None): if boutonChoisir : content = myFile.file.read() nomFichier="./static/upload/" + myFile.filename file = open (nomFichier,"wb") file.write(content) file.close() return mapageIndex +mapageUpload % (len(content), myFile.filename, myFile.content_type,nomFichier,nomFichier) + finpage else : return mapageIndex + finpage cherrypy.quickstart(monSite())