2017-09-07 5 views
0

は、これは私のviews.pyファイルです:エラー - ファイルが判明空

from django.http import HttpResponse 

def render(request): 
    response = HttpResponse(content_type='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 
    response['X-Sendfile'] = '/files/filename.pdf' 
    # path relative to views.py 
    return response 

私は、サーバーと要求

http://localhost:8080/somestring 

を実行すると、私はsomefilename.pdfと呼ばれる空のファイルを取得します。私はrenderに欠けている重要な部分があると思う。

views.py以外のこのアプリの他の部分は私の理解に正確です。

+1

を使用していますか? 'X-Sendfile'はサポートしていません。本番環境では、サーバー(Apacheなど)用にX-Sendfileを有効にする必要があります。 – Alasdair

+0

@Alasdair、はい私は 'python manage.py runserver'を使ってサーバを起動しています。 – Clone

答えて

0

は私の問題を解決し、コードされた:あなたは `manage.py runserver`を

from django.http import HttpResponse 
from wsgiref.util import FileWrapper 

def render(request): 
    response = HttpResponse(FileWrapper(open('file.pdf', 'rb')), content_type='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 

    return response 
0

manage.py runserver開発者はX-Sendfileをサポートしていません。本番環境では、サーバー(Apacheなど)用にX-Sendfileを有効にする必要があります。

django-sendfileパッケージが便利です。開発中に使用できるバックエンドがあります。しかし、それはしばらくの間にリリースされておらず、Python 3のサポートを得るためにpull request 62を適用しなければならないことが分かりました。ここで

関連する問題