将文件上传到 phpmyadmin 时出现以下错误:
未收到要导入的数据。未提交任何文件名,或者文件大小超出了 PHP 配置允许的最大大小。请参阅
我正在使用它nginx
作为网络服务器。
我在 nginx 配置文件中添加了以下配置:
在 /etc/nginx/nginx.conf 中
http {
#default configs
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#default configs
#i have added following
client_max_body_size 100M;
}
这是我的站点配置文件
server {
listen 80;
listen [::]:80;
index index.html index.php;
server_name phpmy.xyz.com;
root /usr/share/phpmyadmin;
# i have added following
client_max_body_size 500M;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
这是我的 php ini 配置/etc/php/7.4/cli/php.ini:
max_execution_time = 3000
max_input_time = 600
max_input_vars = 100000
memory_limit = 100M
file_uploads = On
upload_max_filesize = 200M
max_file_uploads = 20
post_max_size = 200M
PHP 版本:7.4.3
有人知道我错过了什么吗?
答案1
PHP 也有一个post_max_size
可以upload_max_filesize
根据文档。将此值设置为略高于您的上传值,以覆盖该 POST 请求中的其他字段。
post_max_size int
设置允许的最大发布数据大小。此设置还会影响文件上传。要上传大文件,此值必须大于 upload_max_filesize。一般而言,memory_limit 应大于 post_max_size。使用 int 时,值以字节为单位。也可以使用本 FAQ 中所述的简写符号。如果发布数据的大小大于 post_max_size,则 $_POST 和 $_FILES 超全局变量为空。可以通过多种方式跟踪此情况,例如,通过将 $_GET 变量传递给处理数据的脚本,即,然后检查是否设置了 $_GET['processed']。