2009-05-07 6 views
13

J'ai une vue Django qui retourne un HttpResponse avec un type MIME spécial pour que le navigateur de l'utilisateur "télécharge" le fichier au lieu de l'afficher dans le navigateur. Le problème est que le nom de fichier par défaut que la réponse sera enregistrée est l'URL à laquelle l'utilisateur a tenté d'accéder.Rendre la réponse de Django comme un "nom de fichier différent"

Est-il possible d'inclure un nom de fichier par défaut dans l'objet HttpResponse ou dois-je rediriger vers une URL différente pour que cela se produise?

Répondre

27

Il y a un exemple pertinent dans le docs:

from django.http import HttpResponse 

def some_view(request): 
    # Create the HttpResponse object with the appropriate headers. 
    response = HttpResponse(mimetype='application/pdf', <snip>) 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 
    return response 
+0

Note mineure: vous avez besoin des guillemets autour du nom de fichier ou navigateurs utilisera « download.bin ». C'est-à-dire: filename = "somefilename.pdf" – vrplumber

Questions connexes