方法一:使用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中使用了缓存,更加节省资源。 虽说是三种方式,但是原理相同,说白了就是一种方式。
查看更多关于django 中实现文件下载的3种方式的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did171135