如何使用Django的StreamingHttpResponse和FileResponse实现文件或视频的流式下载?
- 内容介绍
- 文章标签
- 相关推荐
本文共计328个文字,预计阅读时间需要2分钟。
pythonfrom django.http import StreamingHttpResponse
def streaming_response_example(): # 使用StreamingHttpResponse类创建响应对象 response=StreamingHttpResponse(streaming_content)
# streaming_content可以是任何迭代器,将数据以流的方式传输 # 内部内容的生成器或迭代器可以按需生成内容,以节省内存
# 设置HTTP响应头信息(可选) response['Content-Type']='application/octet-stream'
return response
StreamingHttpResponse
from django.http import StreamingHttpResponseStreamingHttpResponse(streaming_content):流式相应,内容的迭代器形式,以内容流的方式响应
# 示例
def homeproc2(request):
response = StreamingHttpResponse(open(file_path, 'rb'))
response['Content-Type] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="filename"'
return response
Content-Type:用于指定文件类型。
Content-Disposition:用于指定下载文件的默认名称
FileResponse
FileResponse(stream):以流形式打开后的文件注:FileResponse是StreamingHttpResponse的子类
# 示例
def homeproc2(request):
cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
response = FileResponse(open(cwd + "/msgapp/templates/youfile", "rb"))
response['Content-Type] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="filename"'
return response
Content-Type:用于指定文件类型。
Content-Disposition:用于指定下载文件的默认名称
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!
本文共计328个文字,预计阅读时间需要2分钟。
pythonfrom django.http import StreamingHttpResponse
def streaming_response_example(): # 使用StreamingHttpResponse类创建响应对象 response=StreamingHttpResponse(streaming_content)
# streaming_content可以是任何迭代器,将数据以流的方式传输 # 内部内容的生成器或迭代器可以按需生成内容,以节省内存
# 设置HTTP响应头信息(可选) response['Content-Type']='application/octet-stream'
return response
StreamingHttpResponse
from django.http import StreamingHttpResponseStreamingHttpResponse(streaming_content):流式相应,内容的迭代器形式,以内容流的方式响应
# 示例
def homeproc2(request):
response = StreamingHttpResponse(open(file_path, 'rb'))
response['Content-Type] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="filename"'
return response
Content-Type:用于指定文件类型。
Content-Disposition:用于指定下载文件的默认名称
FileResponse
FileResponse(stream):以流形式打开后的文件注:FileResponse是StreamingHttpResponse的子类
# 示例
def homeproc2(request):
cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
response = FileResponse(open(cwd + "/msgapp/templates/youfile", "rb"))
response['Content-Type] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="filename"'
return response
Content-Type:用于指定文件类型。
Content-Disposition:用于指定下载文件的默认名称
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!

