django 中实现文件下载的3种方式
2019-09-25 17:57
891 查看
方法一:使用HttpResponse from django.shortcuts import HttpResponse def file_down(request): file=open('/home/amarsoft/download/example.tar.gz','rb') response =HttpResponse(file) response['Content-Type']='application/octet-stream' response['Content-Disposition']='attachment;filename="example.tar.gz"' return response 方法二:使用StreamingHttpResponse from django.http import StreamingHttpResponse def file_down(request): file=open('/home/amarsoft/download/example.tar.gz','rb') response =StreamingHttpResponse(file) response['Content-Type']='application/octet-stream' response['Content-Disposition']='attachment;filename="example.tar.gz"' return response 方法三:使用FileResponse from django.http import FileResponse def file_down(request): file=open('/home/amarsoft/download/example.tar.gz','rb') response =FileResponse(file) response['Content-Type']='application/octet-stream' response['Content-Disposition']='attachment;filename="example.tar.gz"' return response
总结:对比 虽然使用这三种方式都能实现,但是推荐用FileResponse, 在FileResponse中使用了缓存,更加节省资源。 虽说是三种方式,但是原理相同,说白了就是一种方式。
相关文章推荐
- 以多线程、断点续传方式下载文件的实现
- struts2中通过Action以InputStream的下载文件以及在iOS以及Android端接收的实现方式
- 文件下载的三种方式,前端和后端实现
- 用Jsp来实现文件下载功能的几种方式(2)
- C#实现文件下载的几种方式
- Struts2实现文件下载(使用注解的方式)
- java实现文件下载的两种方式
- struts2中通过Action以InputStream的下载文件以及在iOS以及Android端接收的实现方式
- struts2使用action方式实现文件下载(支持中文文件名)
- JSP response对象实现文件下载的两种方式
- django实现文件下载
- angularjs实现POST方式下载文件,firefox兼容性问题
- PHP使用header方式实现文件下载功能
- java实现文件下载的两种方式
- java实现文件下载的两种方式
- [小技巧]提交数据并下载文件的实现方式
- struts2使用action方式实现文件下载(支持中文文件名)
- js实现文件下载的两种简单方式
- 用Jsp来实现文件下载功能的几种方式
- Jquery+asp.net实现Ajax方式文件下载实例代码