Django 之 HttpResponse返回文件流

Posted 小小菜_v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 之 HttpResponse返回文件流相关的知识,希望对你有一定的参考价值。

Django 返回文件流

实现如下:

from django.http import HttpResponse


@csrf_exempt
def get_file(request):
	"""
	获取文件
	:param request:
	:return:
	"""
	try:
		book_id = request.GET.get("id")
		file_name = BookInfo.objects.filter(id=book_id).values()
		if file_name.count() == 0:
			return HttpResponse(False)
		file_path = "/opt/" + file_name
		with open(file_path, 'rb') as f:
			response = HttpResponse(f.read(), content_type="application/pdf", charset="utf-8")
			response['Content-Dispositon'] = "attachment; filename={0}".format(file_name)
			response["Access-Control-Allow-Origin"] = '*'
			response["Server"] = '*'
			return response
	except KeyError:
		return HttpResponse(False)
			

content_type=“application/pdf” 不仅是pdf,也可以是content_type="application/doc"等等文件类型

以上是关于Django 之 HttpResponse返回文件流的主要内容,如果未能解决你的问题,请参考以下文章

DJango之视图层

django之HTTPResponse和JsonResponse详解

Django,将文件附件作为HttpResponse返回,我可以获得文件大小吗?

将多个熊猫数据帧作为单个 Django zip 文件返回(每个 DF 一个文件)HttpResponse

如何修复 Django:没有返回 HttpResponse 对象。它返回 None 而不是? [复制]

django基础知识之Response对象