You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

多文件上传异常:15个input单文件正常,多文件仅前10个生效

解决多文件上传仅显示前10个输入框图片的问题

这个问题我之前帮朋友排查过,大概率是PHP的max_file_uploads配置限制了总上传文件数

问题原因分析

你有15个支持多文件的上传输入框,当每个传2张图时,总文件数是15×2=30个。而PHP默认的max_file_uploads配置值是20——这意味着一次请求最多只能处理20个上传文件。所以前10个输入框刚好凑够20个文件,后面的5个输入框的文件直接被PHP丢弃了,自然就显示不出来。

你之前调整的upload_max_filesizepost_max_size只是控制单个文件大小和POST请求总大小,和文件数量限制没关系哦。

解决步骤

  1. 修改php.ini配置
    找到你的PHP配置文件(php.ini),找到max_file_uploads这一行,把值改成至少30(或者更大,比如40,留些冗余空间):
    max_file_uploads = 30
    
  2. 重启Web服务
    修改完配置后,必须重启你的Web服务器(Apache、Nginx或者PHP-FPM,根据你的运行环境来),否则配置不会生效。
  3. 验证配置是否生效
    可以创建一个php文件,内容如下:
    <?php phpinfo(); ?>
    
    访问这个文件,搜索max_file_uploads,确认数值已经更新为你设置的30或更大。

额外注意事项

  • 如果是共享虚拟主机,你可能没有权限直接修改php.ini,这时候可以尝试使用.user.ini文件(部分主机支持),把max_file_uploads = 30写入这个文件放到网站根目录,或者联系主机服务商帮忙调整。
  • 确保post_max_size的数值足够大,至少要大于upload_max_filesize × 总文件数,避免因为POST请求总数据量过大被截断。

内容的提问来源于stack exchange,提问作者Peter Ordonez

火山引擎 最新活动