在用Laravel写就接口的时候,不知道怎么测试怎用postmam测试多图上传,查找了很多资料都没明白,资料一般写的都是上传单张图片的示范,特此记录下来。
Postman设置
Laravel后台接口的编写
写的是一段上传相册到服务器的代码,本人才疏学浅,如有错误请指正
/**
* 上传相册到服务器,同时相关数据存入数据库
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function store(Request $request)
{
$data = [
'uid' => $request->input('uid'),
'albums' => []
];
$pathUrls = [];
if($request->has('images') )
{
$images = $request->file('images');
$content = $request->input('content');
//适配单文件和多文件上传
if(is_array($images))
{
foreach($images as $key=>$v)
{
$path = $images[$key]->store('images','public');
$path = Storage::disk('public')->url($path);
array_push($pathUrls,$path);
}
} else {
$images->store('images','public');
$path = Storage::disk('public')->url($images);
array_push($pathUrls,$path);
}
$pathUrls = implode(',',$pathUrls);
$album = Album::create([
'user_id' => $data['uid'],
'content' => $content,
'photos_url' => $pathUrls
]);
$album->save();
$data['albums']['id'] = $album->id;
$data['albums']['images'] = explode(',', $pathUrls) ;
$data['albums']['content'] = $content;
}
return response()->json([
'status' => 'success',
'status_code' =>200,
'data' => $data,
]);
}
配置路由,别忘了配置为POST
/**
* route/api.php
**/
Route::post('upload','UploadController@store');
(PS)如果路由配置在了web.php
中,别忘了CSRF
的问题配置路由
欢迎关注我的公众号
参考教程:
[1]. https://laravelacademy.org/post/8965.html
[2]. http://blog.sina.cn/dpool/blog/s/blog_bcb98c920102xf5j.html
[3]. https://www.codecasts.com/series/dive-into-restful-api-with-laravel