php 输入流大小限制

标签 php input upload inputstream

我正在尝试使用 php://input 从 php 读取原始输入流。这适用于大多数文件,但是,超过 4MB 的文件在上传时会被忽略。我已经将 post_max_size 和 upload_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"));

最佳答案

尝试 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);

关于php 输入流大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6106009/

相关文章:

javascript - AJAX文件夹路径问题

python - 输入仅输入 2 的幂

file - 如何从csv文件中读取数据并将其存储在数据库中? Spring Boot

jquery - 获取 "Expected ' ,' or ' {' but found ' [选择器 ]'"错误

javascript - Angular js文件上传只允许图像扩展

javascript - 如何在 HTML 中上传之前预览图像?

php - Eclipse PDT 中的 xDebug 观察点?

php - 如何使用 PHP 检查页面 url 中是否包含 www?

javascript - 如何使用javascript从php文件中获取变量?

python - windows机器上python的无缓冲字符输入