php输入流大小限制

vlju58qv  于 2023-02-21  发布在  PHP
关注(0)|答案(1)|浏览(162)

我正在尝试使用php://input从php读取原始输入流。这对大多数文件都有效,但是,超过4MB的文件在上传时会被忽略。我已经将post_max_sizeupload_max_size设置为20M,以为这会解决我的问题,但没有。是否需要配置另一个php.ini设置,或者我需要做一些分块操作?如果是,我该如何着手做呢?下面是upload.php代码:

$fileName = $_SERVER['HTTP_X_FILE_NAME'];
$contentLength = $_SERVER['CONTENT_LENGTH'];

file_put_contents('uploads/' . $fileName, file_get_contents("php://input"));
knpiaxh1

knpiaxh11#

尝试stream_copy_to_stream,它直接将输入内容泵入文件,而无需先将其全部复制到内存中:

$input = fopen('php://input', 'rb');
$file = fopen($filename, 'wb');
stream_copy_to_stream($input, $file);
fclose($input);
fclose($file);

备选方案:

$input = fopen('php://input', 'rb');
$file = fopen($filename, 'wb');
while (!feof($input)) {
    fwrite($file, fread($input, 102400));
}
fclose($input);
fclose($file);

相关问题