【问题标题】:Php get name input file when send POST发送POST时php获取名称输入文件
【发布时间】:2021-05-31 08:33:53
【问题描述】:

我在发布表单时尝试了多次不同的方法来获取字段的名称,我可以获取所有字段的名称,但是对于上传图片、文档等的输入文件不起作用,我把简单示例:

<form name="register" action="" enctype="multipart/form-data" method="post">

<input type="text" name="op[phone]" value="">
<input type="text" name="op[name]" value="">
<input type="text" name="op[street]" value="">
<input type="file" name="op[upload]" value="" />

</form>

为了从字段中获取所有值和名称,我使用这个:

   <?php
    
    foreach($_POST['op'] as $key=>$value)
    {
    print "".$key." = ".$value.""

///// FIELD FOR UPLOAD INPUT FILE HERE DON´T SHOW
    }
    
    ?>

从我需要使用的输入文件中获取值的情况:

echo $_FILES['op']['name']['upload'];

因为在循环 foreach 中我无法获取上传字段的名称,我的问题是,如果有可能在循环中获取字段类型 FILE 的名称,因为如果我能做到这一点,我可以处理表单简单,不需要通过其他方式处理,但我不知道这是否可能,因为如您所见,循环中仅显示字段键和值,但不显示来自字段的上传,我想知道如果可能的话,也可以在循环内获得它。

我希望能理解我的问题,在此先感谢

【问题讨论】:

    标签: php input upload


    【解决方案1】:

    您可以在$_FILES['op']['name'] 上使用foreach 循环:

    foreach ($_FILES['op']['name'] as $key => $filename) {
        $tmp_name = $_FILES['op']['tmp_name'][$key];
        // and similar code for all the other elements in $_FILES items
    }
    

    【讨论】:

    • 它需要检测所有这些内部循环的情况,我在我的示例中指出,检测输入文件名但在另一个循环中,因为如果使用您的示例,我需要通过其他步骤处理此信息
    • 你不能在同一个循环中这样做,因为文件不在$_POST中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多