我是第一次创建API时创建媒体API .
我有这个代码:
/**
* Store a newly created resource in storage.
*
* @param \App\Http\Requests\UploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(UploadRequest $request)
{
if(!$request->hasFile('fileName')) {
return response()->json(['upload_file_not_found'], 400);
}
$file = $request->file('fileName');
if(!$file->isValid()) {
return response()->json(['invalid_file_upload'], 400);
}
if($request->hasfile('fileName'))
{
$media = new Media();
$data = array();
foreach($request->file('fileName') as $image)
{
$rdm = uniqid(5);
$name= $rdm .'-'.$image->getClientOriginalName();
$image->move(public_path().'/images/', $name);
$data[] = $name;
}
$media->fileName = json_encode($data);
$media->clientId = $request->clientId;
$media->uploadedBy = Auth::user()->id;
$media->save();
}
return ["success" => "Your media file has been successfully uploaded"];
}
请问您为什么不将图像上传到公共路径 . 它也不会在数据库中存储任何内容 . 我在发送POST请求时从postman获得了200个代码,但是数据库有一个空数组作为fileName?
编辑
我上传了多张图片 . 没有一个表格,因为我正在为移动应用程序制作api . 该请求是对URL / api / v1 / media的POST请求
2 回答
发送为api的二进制文件 .
php file_get_contents
这是我想出的解决方案:)
这会上载多个文件并检查扩展名中的有效文件 .