6.4. Téléchargement de fichiers
Pour télécharger un fichier du client vers le serveur, la balise INPUT doit avoir le type "file". Le formulaire HTML a l'allure suivante :
<FORM ENCTYPE="multipart/form-data" ACTION="telecharge_fichier.py" METHOD=POST> Fichier à télécharger : <INPUT NAME="monfichier" TYPE="file"> <INPUT TYPE="submit" VALUE="Envoyer"> </FORM>
Le script qui doit gérer le téléchargement de fichier utilisera la variable
REQUEST['monfichier']
ou _monfichier
, qui est une instance de la classe FieldStorage
dans le module cgi
de la distribution standard Python. Cet objet a entre autres attributs :
filename
: le nom du fichierfile
: un objet similaire à un fichier depuis lequel on peut lire le contenu du fichier téléchargé
Par exemple si vous voulez sauvegarder le fichier dans le système de fichier du serveur, avec le même nom que le fichier original :
import os f = _monfichier.file # objet similaire à un fichier nom_dest = os.path.basename(_monfichier.filename) out = open(nom_dest,'wb') # copie du fichier import shutil shutil.copyfileobj(f,out) out.close()