Django 1.7:提供 pdf 文件(UnicodeDecodeError)

Django 1.7: serve a pdf -file (UnicodeDecodeError)

我正在尝试使用 django 1.7 提供 PDF 文件,这基本上是 "should" 工作的代码...如果我将 content_type 更改为 [=16,它肯定会工作=] 并用它下载一个 .tex 文件,但是当我用一个二进制文件尝试它时,我得到“UnicodeDecodeError at /path/to/file/filename.pdf 'utf-8' 编解码器无法解码位置 10 中的字节 0xd0:无效的连续字节"

def download(request, file_name):
    file = open('path/to/file/{}'.format(file_name), 'r')
    response = HttpResponse(file, content_type='application/pdf')
    response['Content-Disposition'] = "attachment; filename={}".format(file_name)
    return response

所以基本上,如果我理解正确的话,它试图将文件作为 UTF-8 编码的文本文件而不是二进制文件提供。我尝试将 content_type 更改为 'application/octet-stream' 并得到类似的结果。我错过了什么?

尝试使用二进制模式打开文件:

file = open('path/to/file/{}'.format(file_name), 'rb')