我正在尝试使用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
PHP
$files = Request::file();
$names = [];
foreach ($files as $file) {
$names[] = $file->getClientOriginalName();
}
return $names;
响应
[
"10365774_10152969188498906_1884545544754633531_n.jpg"
]
我是否需要为此工作正确设置任何类型的配置或标头?如果它有帮助,这将是一个基于AJAX的请求,我一直在使用Google Chrome扩展程序“Postman”进行测试。
非常感谢任何帮助!
答案 0 :(得分:8)
使用文件元素数组作为html,如跟
$files = Request::file('photo');
$names = [];
foreach ($files as $file) {
$names[] = $file->getClientOriginalName();
}
return $names;
在表单和laravel中添加enctype属性以获取文件使用文件的键如下
<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="js/materialize.min.js"></script>
据我说它应该有效。