【问题标题】:get PHP $_FILES array name获取 PHP $_FILES 数组名
【发布时间】:2017-12-23 16:53:18
【问题描述】:

我有一个使用“post”方法(不涉及 ajax)发送到 php 脚本的 html 表单。

在表单中我有一些type="file" 字段。

现在在我的 php 脚本中,我有一个 php foreach 循环循环发送的文件:

foreach($_FILES as $file) {
// Some checks and actions.
}

在那个循环中,我希望能够使用当前的文件数组名称(这等于上传的名称属性,当然它是从它上传的),所以我很努力:

foreach($_FILES as $file) {
// Some checks and actions.
print ($file);
}

但这只是在呼应“数组”。

重要提示: 我的 $_FILES 数组的结构是这样的:

Array
(
    [_pf_photo1] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [_pf_photo2] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [_pf_photo3] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [_pf_photo4] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [_pf_photo5] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [selfimage] => Array
        (
            [name] => IMG_9785.JPG
            [type] => image/jpeg
            [tmp_name] => /tmp/phpWMOKhn
            [error] => 0
            [size] => 104221
        )

)

$_FILES 可以用另一种方式构造,所以为了让事情更清楚)。所以在那个例子中,我想在循环中得到什么(对于数组名称部分)是:

_pf_photo1, _pf_photo2, _pf_photo3, _pf_photo4, _pf_photo5, 自我形象

【问题讨论】:

  • 使用print_rvar_dump 进行调试。 print 仅适用于字符串。
  • foreach($_FILES as $key => $file) { echo $key; }
  • 分享表单代码
  • @George shaw 的回答中已经提出了这一点。见那里的评论。
  • 即使print_r($_FILES) 已共享,共享表单代码是否会有所帮助?

标签: php arrays forms post


【解决方案1】:

我希望您正在寻找提取密钥

foreach ($_FILES as $key => $file) { 
  echo $key; // print your array key
  echo $file['name']; // print your name inside that array
} 

【讨论】:

  • 谢谢,我首先看到了另一个(我猜这与 Stackoverflow 的工作方式有关)并添加了一些 cmets,所以我接受了它,但我也投了你的票。非常感谢!
【解决方案2】:

如果我正确理解您的问题,这可能就是您要查找的内容。

foreach($_FILES as $key => $value) {
    echo $key;
}

我能理解这个问题的唯一另一种方法是你是否错误地使用了 print。要打印包含所有数据的对象/数组,您可以使用 var_dump 而不是 print

【讨论】:

  • 它猜它会工作,但我将无法在循环中间使用像 $file[name] 这样的东西。我说的对吗?
  • 您肯定能够访问该循环内的数组值。在我的示例中,它看起来像 echo $value['name'];,因为 $value 引用了 $_FILES 中的一个数组,而 $key 只是引用了数组的名称。
  • 太棒了!谢谢!终于明白了(有点……:)
猜你喜欢
  • 1970-01-01
  • 2017-06-12
  • 2012-12-25
  • 2014-03-23
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多