通过django下载图像

通过django下载图像,django,download,Django,Download,我试着从我的django网站下载一张图片。我是这样做的: def file_download(request, filename): from django.core.servers.basehttp import FileWrapper import mimetypes import settings import os filepath = os.path.join(settings.MEDIA_ROOT, filename) wrapper = FileWrapper(open(

我试着从我的django网站下载一张图片。我是这样做的:

def file_download(request, filename):
from django.core.servers.basehttp import FileWrapper
import mimetypes
import settings
import os

filepath = os.path.join(settings.MEDIA_ROOT, filename)    
wrapper = FileWrapper(open(filepath))
content_type = mimetypes.guess_type(filepath)[0]
response = HttpResponse(wrapper, mimetype='content_type')
response['Content-Disposition'] = "attachment; filename=%s" % filename
return response

但是,它不适用于图像(我尝试jpg文件),但适用于txt文件。为什么?

您可能需要以二进制模式打开文件:

wrapper = FileWrapper(open(filepath, 'rb'))

可能需要以二进制模式打开文件:

wrapper = FileWrapper(open(filepath, 'rb'))

是的,它起作用了!我可以知道什么时候我应该以二进制模式打开文件吗?基本上,当它们不是文本时。是的,它可以工作!我可以知道什么时候我应该以二进制模式打开文件吗?基本上,当它们不是文本时。