一聚教程网:一个值得你收藏的教程网站

热门教程

php下载远程大文件的实例

时间:2022-06-24 19:45:54 编辑:袖梨 来源:一聚教程网

废话不多说,直接上代码

 

 代码如下复制代码

  // 暂不支持断点续传

  // $url = 'http://www.mytest.com/debian.iso' 不知道为何获取本地文件大小为0

  $url='http://192.168.8.93/download/vm-672/18/0.vmdk'

  $file=basename($url);

  $header= get_headers($url, 1);

  $size=$header['Content-Length'];

 

  $fp=fopen($url,'rb');

  if($fp=== false)exit('文件不存在或打开失败');

 

  header('Content-Description: File Transfer');

  header('Content-Type: application/octet-stream');

  header('Content-Disposition: attachment; filename="'.$file.'"');

  header('Content-Transfer-Encoding: binary');

  header('Expires: 0');

  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

  header('Pragma: public');

  header('Content-Length: '.$size);

 

  ob_clean();

  ob_end_flush();

  set_time_limit(0);

   

  $chunkSize= 1024 * 1024;

  while(!feof($fp)) {

    $buffer=fread($fp,$chunkSize);

    echo$buffer;

    ob_flush();

    flush();

  }

  fclose($fp);

  exit;

 

热门栏目