You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何获取同名Content-Disposition的多文件上传内容?

如何在PHP中获取同名Content-Disposition的多文件上传?

要解决PHP中只能获取到最后一个同名name的上传文件问题,无需解析php://input的话,核心是调整PHP的上传处理配置,以下是具体方案:

方法1:启用upload_arrays配置(推荐)

PHP 7.1及以上版本提供了upload_arrays配置项,默认处于关闭状态。开启后,PHP会自动将所有同名的上传文件整理为数组结构,而非覆盖保留最后一个。

配置方式

  • 全局配置:在php.ini文件中添加或修改:
    upload_arrays = On
    
    修改后需要重启PHP服务生效。
  • 脚本内动态配置:如果服务器允许动态修改配置,可在脚本开头添加:
    ini_set('upload_arrays', 1);
    

效果示例

启用后,$_FILES['images']会变为二维数组,包含所有上传文件的信息:

Array
(
    [name] => Array
        (
            [0] => file1.jpg
            [1] => file2.jpg
            [2] => file3.jpg
        )

    [type] => Array
        (
            [0] => image/jpeg
            [1] => image/jpeg
            [2] => image/jpeg
        )

    [tmp_name] => Array
        (
            [0] => /tmp/phpXXXX.tmp
            [1] => /tmp/phpYYYY.tmp
            [2] => /tmp/phpZZZZ.tmp
        )

    [error] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
        )

    [size] => Array
        (
            [0] => 57728
            [1] => 60000
            [2] => 55000
        )
)

你可以通过循环遍历数组来逐个处理每个上传文件。

注意事项

  • 版本限制:upload_arrays仅在PHP 7.1及以上版本可用,若你的PHP版本低于此,需考虑升级PHP,或只能通过解析php://input来处理(但这不符合你“不解析原始输入”的要求)。
  • 权限限制:部分服务器的安全配置可能禁用了ini_set修改upload_arrays,这种情况下需要联系服务器管理员调整全局php.ini配置。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:07:27