Sommaire

La gestion des fichiers

Dans n’importe quel formulaire HTML traité par Django, les fichiers sont placés dans la variable request.FILES, sous réserve bien sûr que vous n’ayez pas oublié d’ajouter le type d’encryption à votre formulaire HTML (enctype="multipart/form-data").

Commençons par un exemple :

from django import forms  
  
class FormulaireAvecFichier(forms.Form):  
   fichier = forms.FileField() 

Le traitement dans la vue devrait ressembler à cela :

from django.http import HttpResponseRedirect  
from django.shortcuts import render_to_response  
from .forms import FormulaireAvecFichier  
  
def traiter_le_fichier(f):  
    with open(f.name, ’wb+’) as fichier:  
        for chunk in f.chunks():  
            fichier.write(chunk)  
  
def recuperer_le_fichier(request):  
    if request.method == ’POST’:  
        form = FormulaireAvecFichier(request.POST, request.FILES)  
        if form.is_valid():  
            traiter_le_fichier(request.FILES[’fichier’])  
            return HttpResponseRedirect(’/fichier_ok/’)  
    else:  
        form = FormulaireAvecFichier()  
    return render_to_response(’formulaire.html’, ...