Django附件下载
-
附件下载最常用的就是
FileResponse
了,但是如果直接指定Content-Type 和 Content-Disposition 可能在下载图片和pdf时不好使。response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format(download_file)
-
所以推荐直接在构造
FileResponse
的时候直接传入一个参数as_attachment=True
然后给文件名就可以了。非常方便.
我的核心代码如下
path = code.path
fp = open(os.path.join(settings.MEDIA_ROOT,path),'rb')
filename = path.split("/")[-1].encode().decode('utf-8')
response = FileResponse(fp,as_attachment=True,filename=filename)
return response