【问题标题】:How to request file with array name of input file?如何使用输入文件的数组名称请求文件?
【发布时间】:2015-08-26 12:46:18
【问题描述】:

只是想知道为什么我无法从输入类型文件中获取数组名称的值。

HTML:

<input type="file" name="collateral_photo[]" id="collateral_photo" class="default"/>

这个输入文件的名字是一个数组。

PHP Laravel

return Request::file('collateral_photo');

返回结果是[{}]

我现在想要的是如何从这个带有数组名的输入文件中获取值。

请帮帮我。

非常感谢您的帮助。

【问题讨论】:

  • 您可能忘记在表单中添加enctype="multipart/form-data"
  • 我已经输入了这个编码类型。
  • 不要用id改用名字。

标签: php html laravel


【解决方案1】:

如果是文件数组的话:

$request()->file($fieldName)[$key]->getClientOriginalName();

【讨论】:

    【解决方案2】:

    更进一步,我们可以像这样使用多级数组:

    <input name="channel[1][file]" type="file">
    <input name="channel[2][file]" type="file">
    

    在 laravel 中你需要一个结构

    $files = $request->file('channel');
    $file1 = $files[1]['file'];
    $file2 = $files[2]['file'];
    

    【讨论】:

    • 它对我来说很好用!结合这个检查函数 $request->hasFile("channel.1.file")
    【解决方案3】:

    使用下面的代码,因为 name 属性是一个数组

    $files = Request::file('collateral_photo');
    return $files[0];
    

    或者如果你想要第二个文件

    return $files[1];
    
    //if you want to access second file and so on
    

    您需要访问指定数组索引的文件。

    如果你想返回整个文件数组本身然后使用

    return $files
    

    【讨论】:

    • @Sourabh...如果我使用它,返回结果将一无所获。 :(
    • var_dump() 的结果是什么?
    • 如果我返回指定的偏移量,如 return $files[0],它会告诉我这个值。但如果我尝试使用 return $files,它会给我这个 [{}]。
    • 我没有看到它返回 [{}] 的任何原因,您可以将代码发布在您访问它的问题中吗?可能是您以错误的方式访问它
    • 哦……我现在解决了。我使用带有指定偏移量的 return 来循环该值。非常感谢。 :)
    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多