php 關於readfile下載大檔案失敗的解決方案

來源:互聯網
上載者:User
這篇文章主要介紹了php readfile下載大檔案失敗的解決方案,涉及php針對大檔案的分割及逐塊下載操作實現技巧,需要的朋友可以參考下

具體如下:

大檔案有200多M,只下載了200K就提示下載完成,且不報錯。

原因是PHP記憶體有限制,需要改為按塊下載,就是把大檔案切塊後逐塊下載


if (file_exists($file)){  if (FALSE!== ($handler = fopen($file, 'r')))  {    header('Content-Description: File Transfer');    header('Content-Type: application/octet-stream');    header('Content-Disposition: attachment; filename='.basename($file));    header('Content-Transfer-Encoding: chunked'); //changed to chunked    header('Expires: 0');    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');    header('Pragma: public');    //header('Content-Length: ' . filesize($file)); //Remove    //Send the content in chunks    while(false !== ($chunk = fread($handler,4096)))    {      echo $chunk;    }  }  exit;}echo "<h1>Content error</h1><p>The file does not exist!</p>";



相關推薦:

php中readfile() 函數設定檔案大小的方法

php readfile()修改檔案上傳大小案例

readfile()函數設定php檔案大小方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.