readfile()從檔案指標指向的位置開始將資料讀出到一個檔案中, 且支援同步與非同步操作,所以本文就和大家分享readfile()函數設定php檔案大小方法,希望能辦這個助到大家。
使用PHP ZipArchive產生的壓縮包,小的壓縮包都能下載,今天遇到個150M以上的就報404錯誤,第一想到的就是文件大小超出了PHP默認設置,修改方法有兩個:
php.ini:memory_limit
memory_limit是設定記憶體限制的,如果使用readfile()讀取檔案就會和這個有關,直接修改這個值保存後重啟php-fpm即可。
memory_limit = 128M
最後記得:service php-fpm restart
ini_set
##PHP ini_set用來設定php. ini的值,在函數執行的時候生效,那我們直接用來修改記憶體執行大小即可,有些朋友用的如果是虛擬空間的話,這個函數就是救星了。ini_set('memory_limit', '512M');完整的範例:
set_time_limit(0); ini_set('memory_limit', '512M'); header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename=' . basename($zipfile)); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); header('Content-Length: ' . filesize($zipfile)); ob_clean(); flush(); @readfile($zipfile); unlink($zipfile);相關推薦:
以上是readfile()函數設定php檔案大小方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!