I am trying to upload multiple images using guzzlehttp client. I have a form in which other type of data('id', 'date','name' e.t.c..) and images are there.
I want to save other data along with image upload through an Api Request.
I am able to save other data, but i am getting problem in uploading images.
In the API i am accessing my image file by
$request->file('images') but it is showing empty.
My code for calling the API
$images = $request->file('images'); foreach ($images as $image) { $body[] = [ 'Content-type' => 'multipart/form-data', 'name' => $image->getClientOriginalName(), 'contents' => fopen($image->getRealPath(), 'r') ]; } $data = $request->all(); $client = new Client(); $response = $client->request('POST', $url, [ 'multipart' => $body, 'json' => $data ]); I'm handling the Api for uploading image below
if ($request->hasFile('images')) { $images = $request->file('images'); foreach ($images as $image) { $imageRules = [ 'file' => 'mimes:png,jpeg,jpg,JPG|max:1024' ]; $imageMessages = [ 'file.mimes' => 'One of the images/video is not valid. (only .png, .jpeg, .jpg, .mp4, .x-flv, .x-mpegURL, .MP2T, .3gpp, .quicktime, .x-msvideo, .x-ms-wmv are accepted)', 'file.max' => 'Image size cannot br more than 1 MB' ]; $imageValidator = Validator::make(['file' => $image], $imageRules, $imageMessages); if ($imageValidator->fails()) { return response()->json(['success' => false, 'error' => $imageValidator->messages()->first(), 'dashRedirectUrl' => $redirectRoute]); } } $directPath = '/ticket/' . $ticket->id . '/mapping/' . $mappingId . '/images/'; foreach ($images as $image) { $option = ['isWatermark' => false]; $imageName = $this->uploadImageToServer($image, $directPath, $option); $imgInsertData = [ 'url' => $imageName, 'title' => $this->getImageTitle($image), 'ticket_mapping_id' => $mappingId, 'type_id' => 1, ]; TicketMappingGallery::create($imgInsertData); } } Note :: My funciton uploadImageToServer() is custom function for uploading the images..
Any help would be appreciated. Drop comment if anything is not clear.
uploadImageToServer()&getImageTittle()function please ?