mirror of
https://github.com/prasathmani/tinyfilemanager
synced 2024-04-27 11:42:00 +02:00
use stream_copy_to_stream (#1014)
* use stream_copy_to_stream it's simpler, and should be faster. For example, stream_copy_to_stream can use sendfile ( https://man7.org/linux/man-pages/man2/sendfile.2.html ) on operating systems supporting it, which is faster and use less RAM than fread()+fwrite() (because it avoids copying data to/from userland, doing the copy entirely in-kernel~) * fix loop early return, and workaround bug * use feof ref https://github.com/prasathmani/tinyfilemanager/issues/1016#issuecomment-1502081506
This commit is contained in:
parent
85f35bc28f
commit
f6a93653be
|
@ -969,7 +969,12 @@ if (!empty($_FILES) && !FM_READONLY) {
|
|||
if ($out) {
|
||||
$in = @fopen($tmp_name, "rb");
|
||||
if ($in) {
|
||||
while ($buff = fread($in, 4096)) { fwrite($out, $buff); }
|
||||
if (PHP_VERSION_ID < 80009) {
|
||||
// workaround https://bugs.php.net/bug.php?id=81145
|
||||
while (!feof($in)) { fwrite($out, fread($in, 4096)); }
|
||||
} else {
|
||||
stream_copy_to_stream($in, $out);
|
||||
}
|
||||
$response = array (
|
||||
'status' => 'success',
|
||||
'info' => "file upload successful"
|
||||
|
|
Loading…
Reference in a new issue