我使用Django 1.11来下载文件。这是我的功能。Django下载文件:UnicodeDecodeError
def file_downloading(request, filename):
path = settings.MEDIA_ROOT+'/'
the_file_name = path+filename
f_name = filename.split('/')[len(filename.split('/'))-1]
wrapper = FileWrapper(open(the_file_name, "r"))
content_type = mimetypes.guess_type(the_file_name)[0]
response = HttpResponse(wrapper, content_type=content_type)
response['Content-Length'] = os.path.getsize(path)
response['Content-Disposition'] = 'attachment; filename=%s f_name
return response`
但我得到了UnicodeDecodeError
当我试图下载的.pdf file.Actually它,只有当该文件是.TXT工作。当我将包装器更改为open("file_name","rb")
时,该文件可以下载,但无法打开。我该如何处理这个问题?
the_file_name,“w”,试试这个 – Exprator
尝试'wrapper = open(the_file_name,“rb”)',表示删除FileWrapper – itzMEonTV
使用'os.path.join'来构造文件系统路径而不是字符串好得多concatentation。这样的代码更便携,更易于阅读。 –