mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-03-24 06:20:07 +01:00
Sends PHP packaged archives in smaller segments (16MB) to not hit PHP's memory limit. Thanks to Zaoh Lei.
This commit is contained in:
parent
a87500309a
commit
b09d4f638c
@ -105,7 +105,7 @@ Options
|
||||
*/
|
||||
"download": {
|
||||
"enabled": true,
|
||||
"execution": "shell",
|
||||
"execution": "php",
|
||||
"format": "tar",
|
||||
"packageName": null
|
||||
},
|
||||
|
@ -136,21 +136,18 @@ class Api {
|
||||
header("Connection: close");
|
||||
register_shutdown_function("delete_tempfile", $target);
|
||||
|
||||
readfile($target);
|
||||
// readfile($target);
|
||||
|
||||
// Patch by Zhao Lei
|
||||
// Max size of download file is limited by memory_limit(default: 128M)
|
||||
// in php.ini if we use readfile().
|
||||
// To solve this problem, we can change to send data with small segments.
|
||||
// if ($fd = fopen($target, 'rb')) {
|
||||
// set_time_limit(0);
|
||||
// while (!feof($fd)) {
|
||||
// print fread($fd, 1024 * 64);
|
||||
// ob_flush();
|
||||
// flush();
|
||||
// }
|
||||
// fclose($fd);
|
||||
// }
|
||||
// Send data in small segments of 16MB to not hit PHP's memory limit (default: 128M)
|
||||
if ($fd = fopen($target, 'rb')) {
|
||||
set_time_limit(0);
|
||||
while (!feof($fd)) {
|
||||
print fread($fd, 1024 * 1024 * 16);
|
||||
ob_flush();
|
||||
flush();
|
||||
}
|
||||
fclose($fd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user