PHP 上传文件总是失败,提示 "UPLOAD_ERR_INI_SIZE" 或 "文件过大"?

这是因为 PHP 配置文件 php.ini中的上传大小限制小于你要上传的文件大小。
排查与解决:
  1. 查看当前限制值phpinfo()页面搜索 upload_max_filesizepost_max_size

  2. 修改 php.ini 配置
    ; 允许上传的最大文件大小(如 64M)upload_max_filesize = 64M; POST 数据最大大小(必须 >= upload_max_filesize)post_max_size = 70M; 最大并发上传文件数max_file_uploads = 20; 脚本最大执行时间(大文件上传可能需要更长时间)max_execution_time = 300memory_limit = 128M

  3. 修改后重启 Web 服务sudo systemctl restart php-fpm或 Apache

  4. 前端也要同步限制:HTML 表单中 enctype="multipart/form-data",JS 可做客户端预检

  5. Nginx 额外限制:若使用 Nginx 代理,还需检查 client_max_body_size
    client_max_body_size 70M;

💡 调试技巧:在 $_FILES['file']['error']返回值中,0 表示成功,1 表示超过 upload_max_filesize,2 表示超过表单 MAX_FILE_SIZE,3 表示部分上传,4 表示没有文件被上传。


您可以还会对下面的文章感兴趣:

暂无相关文章