Laravel 5,尝试 multi-file 上传,Request::file() 只返回最后一个文件?
Laravel 5, attempting multi-file upload, Request::file() only returning last file?
我正在尝试使用 Laravel 5 的 Request
门面使用相同的密钥上传多个文件。从我在其他地方读到的内容来看,正确的方法是调用 Request::file()
而不将参数传递给 ::file()
方法。
但是,这似乎只是 return 请求中发送的最后一个文件。
Headers
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"
]
是否有任何类型的配置或 headers 我必须为此工作适当设置?如果有帮助,这将是一个基于 AJAX 的请求,我一直在使用 Google Chrome 扩展 "Postman" 来测试它。
如有任何帮助,我们将不胜感激!
使用文件元素数组作为html,如下所示
<input type="file" name="photo[]">
<input type="file" name="photo[]">
在表单和 laravel 中添加 enctype 属性以获取文件使用文件的密钥如下
$files = Request::file('photo');
$names = [];
foreach ($files as $file) {
$names[] = $file->getClientOriginalName();
}
return $names;
根据我的说法,它应该有效。
我正在尝试使用 Laravel 5 的 Request
门面使用相同的密钥上传多个文件。从我在其他地方读到的内容来看,正确的方法是调用 Request::file()
而不将参数传递给 ::file()
方法。
但是,这似乎只是 return 请求中发送的最后一个文件。
Headers
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"
]
是否有任何类型的配置或 headers 我必须为此工作适当设置?如果有帮助,这将是一个基于 AJAX 的请求,我一直在使用 Google Chrome 扩展 "Postman" 来测试它。
如有任何帮助,我们将不胜感激!
使用文件元素数组作为html,如下所示
<input type="file" name="photo[]">
<input type="file" name="photo[]">
在表单和 laravel 中添加 enctype 属性以获取文件使用文件的密钥如下
$files = Request::file('photo');
$names = [];
foreach ($files as $file) {
$names[] = $file->getClientOriginalName();
}
return $names;
根据我的说法,它应该有效。