Laravel 5,尝试多文件上传,Request :: file()只返回最后一个文件?

Ali*_*aba 3 php upload http laravel laravel-5

我正在尝试使用Laravel 5的Request外观使用相同的密钥上传多个文件.从我在其他地方读到的,正确的方法是在Request::file()不将参数传递给::file()方法的情况下调用.

但是,这似乎只返回请求中发送的最后一个文件.

POST /test/service/upload HTTP/1.1
Host: www.****.dev
X-CSRF-TOKEN: 2DQBuTuy50EELFen5vXFaOv1cyXICmAISUx8LoCS
Cache-Control: no-cache

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="photo"; filename="10464005_10152969193248906_6272325120604924631_n.jpg"
Content-Type: image/jpeg


----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="photo"; filename="10458555_10152969192978906_1569926627111581344_n.jpg"
Content-Type: image/jpeg


----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="photo"; filename="10365774_10152969188498906_1884545544754633531_n.jpg"
Content-Type: image/jpeg


----WebKitFormBoundaryE19zNvXGzXaLvS5C
Run Code Online (Sandbox Code Playgroud)

PHP

    $files = Request::file();
    $names = [];

    foreach ($files as $file) {
        $names[] = $file->getClientOriginalName();
    }
    return $names;
Run Code Online (Sandbox Code Playgroud)

响应

[
    "10365774_10152969188498906_1884545544754633531_n.jpg"
]
Run Code Online (Sandbox Code Playgroud)

我是否需要为此工作设置适当的配置或标头?如果它有帮助,这将是一个基于AJAX的请求,我一直在使用谷歌Chrome扩展"邮差"来测试这个.

任何帮助将不胜感激!

小智 9

使用文件元素数组作为html,如下所示

<input type="file" name="photo[]">
<input type="file" name="photo[]">
Run Code Online (Sandbox Code Playgroud)

在窗体和窗口中添加enctype属性以获取文件使用文件的键如下

$files = Request::file('photo');
    $names = [];

    foreach ($files as $file) {
        $names[] = $file->getClientOriginalName();
    }
    return $names;
Run Code Online (Sandbox Code Playgroud)

根据我,它应该工作.