firstOrFail(); // TODO : put this after check file exist // validate file format $validator = Validator::make($request->all(), [ 'file' => 'image|mimes:jpg,jpeg,bmp,png' ]); if($validator->fails()) { return response()->json(['message'=>'Incorrect format'],200); } $validator = Validator::make($request->all(), [ 'china_bank_slips' => 'max:3072' ]); if($validator->fails()) { return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400); } if($bankslip_file = $request->file('file')){ $filename = $bankslip_file->getClientOriginalName(); $ext = $bankslip_file->getClientOriginalExtension(); $unique_name = 'cnbank_slip_' . md5($filename. time()); // probably not a good idea $unique_image_path = $unique_name. '.' .$ext; // Upload Image $upload_path = Storage::disk('public')->putFileAs( 'china_bank_slip', $bankslip_file, $unique_image_path ); } else { return response()->json(['message'=>'file not found'],200); } $china_bankslip = new ChinaBankSlip; $china_bankslip->booking_id = $booking->id; $china_bankslip->china_bank_slip_path = $upload_path; $china_bankslip->save(); return response()->json(['message'=>'success'], 201); } }