为什么 PHP 不允许我上传超过 2MB 的文件?
Why is PHP not allowing me to upload more than 2MB file?
我无法在我的网站表单中上传超过 2MB 的图片。
我已经在 /etc/php/7.4/fpm/php.ini
中设置了所需的设置:
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 100M
.
.
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = ON
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 100M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
.
.
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 128M
但问题是,当我在索引页中打印 php 信息时,我得到了不同的输出:/
为什么会发生这种情况,我该如何解决?
注意: 如果需要的话,我正在使用 nginx 为我的网站提供服务(请参阅 nginx 设置)
两个 PHP 配置选项控制最大上传大小:upload_max_filesize
和 post_max_size
。如果您要显着增加这些值,请考虑同时提高 max_input_time
和 max_execution_time
值
如果您在 php.ini 中找不到 2mb 设置的来源,您可以在 .htaccess 文件中覆盖
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_input_time 300
php_value max_execution_time 300
或者如果需要,直接在您的 PHP 页面中
<?php
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
?>
例如...
问题终于解决了:
解决方案是在项目的 public 目录中添加 php.ini
和 .user.ini
文件以设置所需的值(两个文件):
upload_max_filesize = 20M
post_max_size = 20M
像这样:
我没有找到更新的真正原因 /etc/php/7.4/fpm/php.ini
但是这 2 个文件最终修复了它
我无法在我的网站表单中上传超过 2MB 的图片。
我已经在 /etc/php/7.4/fpm/php.ini
中设置了所需的设置:
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 100M
.
.
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = ON
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 100M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
.
.
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 128M
但问题是,当我在索引页中打印 php 信息时,我得到了不同的输出:/
为什么会发生这种情况,我该如何解决?
注意: 如果需要的话,我正在使用 nginx 为我的网站提供服务(请参阅 nginx 设置)
两个 PHP 配置选项控制最大上传大小:upload_max_filesize
和 post_max_size
。如果您要显着增加这些值,请考虑同时提高 max_input_time
和 max_execution_time
值
如果您在 php.ini 中找不到 2mb 设置的来源,您可以在 .htaccess 文件中覆盖
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_input_time 300
php_value max_execution_time 300
或者如果需要,直接在您的 PHP 页面中
<?php
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
?>
例如...
问题终于解决了:
解决方案是在项目的 public 目录中添加 php.ini
和 .user.ini
文件以设置所需的值(两个文件):
upload_max_filesize = 20M
post_max_size = 20M
像这样:
我没有找到更新的真正原因 /etc/php/7.4/fpm/php.ini
但是这 2 个文件最终修复了它