【发布时间】:2020-04-01 16:13:09
【问题描述】:
尝试将文件上传到我的测试 api。为了测试,我尝试检查输入是否有文件并且它返回 true。问题是当代码尝试移动该文件时。搜索 google 显示几乎与我相同的代码;
if (Input::hasFile('attachments')) {
$path = base_path().'/assets';
$files = Input::file('attachments');
$data = [];
foreach ($files as $file) {
$data[] = $file->getClientOriginalExtension();
$uuid = Uuid::uuid1();
$extension = $file->getClientOriginalExtension();
$filename = $uuid.'.'.$extension;
$file->move($path, $filename);
}
return Response::json($data);
} else {
return 'no file';
}
使用 Paw 多部分进行发布请求,在 json 上给出此结果
还是想不通。任何帮助都感激不尽。非常感谢你们。
【问题讨论】:
-
你为什么不转储
$files这样你就可以看到它是什么 -
这里是 dd($files) 对象(Symfony\Component\HttpFoundation\File\UploadedFile)#10 (7) { ["test":"Symfony\Component\HttpFoundation\File\UploadedFile": private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(40) "屏幕截图 2019-12-05 下午 1.53.47.png" [ "mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "image/png ["pathName":"SplFileInfo":private]=> string(26) "/private/var /tmp/phpcLdzTa" ["fileName":"SplFileInfo":private]=> 字符串(9) "phpcLdzTa" }
-
我不需要看它,它是让你看它是什么,因为 foreach 没有运行,你试图迭代一些不是你认为的东西,比如单个上传文件对象,迭代该对象不会有多大好处...简而言之,您只有一个文件,不多,您的输入是单个输入而不是输入数组
-
是的,尝试迭代 input::file 但仍然没有价值
-
Input::file似乎不可迭代。你能分享你的视图定义吗?