为了账号安全,请及时绑定邮箱和手机立即绑定

php 下载大文件并保存在服务器

php 下载大文件并保存在服务器

PHP
饮歌长啸 2019-01-04 17:20:42
如题。不能使用 set_time_limit(0),因为线上项目不会让你无限期的执行我现在能想到的只有使用curlcurl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch ,$str){});每次读取一小部分然后写入文件。不知道还有没有更好的办法,希望各位大神指点。
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

采用断点续传即可。

前提条件是服务端支持断点续传。这个只要看服务端返回的应答头中,是否包含以下header:
Accept-Ranges: bytes

只要有这个header,就说明对方支持断点续传。

这样每次请求时,可以在请求头中增加以下header,以指定读取的数据范围:

Range: bytes=1024-2047 请求从第1024个字节到第2047个字节之间的数据

Range: bytes=2048- 请求从第2048个字节到最后一个字节的内容

诸如此类…


查看完整回答
反对 回复 2019-01-04
  • 1 回答
  • 0 关注
  • 1149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信