设置文件大小时php下载限制zip损坏

时间:2018-12-23 17:02:28

标签: php download http-headers zip zipfile

设置文件大小标头后压缩损坏

我有这段代码来限制php中的下载速度:

function readfile_chunked($filename, $retbytes = TRUE) {
 $download_rate = 85;  global $filename ;
  // send headers
  header('Cache-control: private');
  header('Content-Type: application/octet-stream');
  header('Content-Length: '.filesize($filename));
  header('Content-Disposition: filename=file.zip');

  // flush content
  flush();
  // open file stream
  $file = fopen($filename, "r");
  while(!feof($file)) {

      // send the current file part to the browser
      print fread($file, round($download_rate * 1024));

      // flush the content to the browser
      flush();

      // sleep one second
      usleep(200);
  }

}

当我像这样设置内容长度的标题时:

  

header('Content-Length:'.filesize($ filename));

并打开下载的文件,向我显示文件已损坏的警报。不仅仅是zip文件,我尝试使用jpg文件及其相同的文件。

  

但是,当我删除文件大小标题时,文件或图像打开时没有任何错误

1 个答案:

答案 0 :(得分:-1)

我通过在函数开始处添加ob_clean()解决了该问题。我尝试解决了3个月,这需要一个聚会;)

function party(forVisitors){
Drink(); 
Play();
HaveFun(); 
GoHome();
}