python的flask要下载什么_使用Python Flask中的简历支持文件流下载

在Python Flask应用中,用户尝试恢复部分下载的文件时遇到问题。当Firefox发送Range头请求从断点续传时,代码无法正确处理导致下载失败。开发者已经检查了Content-Range和Range头的处理,并尝试使用f.seek()来定位开始字节,但流式下载仍然出现问题。控制台输出显示下载尝试仍在继续,但最终失败,没有出现明显错误。
摘要由CSDN通过智能技术生成

我有一个在Python和Flask开发的Web应用程序,登录后,点击特定文件的下载链接,它开始流式下载文件,并且工作正常。

现在,如果下载失败(文件被部分下载),并且用户点击文件的Firefox下载中的恢复按钮。然后它发送Range: bytes=7904925-,我使用这个头允许从它离开的地方下载恢复文件,即跳过7904925字节。但它不工作,下载失败。

这里是代码,它也有范围头部分,

start_bytes=0

if 'Content-Range' in request.headers:

range_str = request.headers['Content-Range']

start_bytes = int(range_str.split(' ')[1].split('-')[0])

start_bytes=int(start_bytes)

elif "Range" in request.headers:

range_str = request.headers['Range']

start_bytes = int(range_str.split('=')[1].split('-')[0])

start_bytes=int(start_bytes)

# Streaming download

def generate(start_bytes):

with open(file_path, 'rb') as f:

while True:

if start_bytes>0:

print "Start Bytes:", start_bytes

f.seek(start_bytes)

print f.tell()

data = f.read(1024)

print "Streaming..."

if not data:

break

yield data

return Response(stream_with_context(generate(start_bytes)), mimetype="application/octet-stream",

headers={

'Content-Disposition': 'attachment; filename="%s"' % file_name,

'content-length': '%s' % os.path.getsize(file_path)

},

content_type="application/octet-stream")什么不见​​了?如果是简历,我需要以不同的方式回复吗?

更新我将打印语句输出为

Start Bytes: 7904925

7904925

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

Streaming...

...

...而且更少的次数和下载失败,在控制台上没有错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值