I'm uploading files using laravel as backend API REST. When I upload a file in the frontend, it sends a 200 OK status code in the response, but doesn't save it to the database. Something weird that I see it's that in the response the data comes empty, and the array of the files comes in the config section of the response.
This is the controller that handles this situation
public function makeFile(Request $request)
{
$fileArray = [];
if (isset($request->files) && is_array($request->files)) {
foreach ($request->files as $key => $fileEntity) {
$file= new File();
$file->file=$fileEntity['file'];
$file->shipment_id=$fileEntity['shipment_id'];
$file->user_id=$fileEntity['user_id'];
$file->date=date('Y,m,d,G,i,s');
$file->fileName=$fileEntity['fileName'];
$file->fileType=$fileEntity['fileType'];
$file->status=$fileEntity['status'];
$file->save();
$fileArray[] = $file;
}
}
return response()->json($fileArray);
}
This is my form
<uib-tab index="1" heading="Files">
<div class="row">
<label>Add File</label>
<ul class="shipment__files">
<li class="col-xs-12 col-md-6" ng-repeat="file in shipment.shipmentObject.files">
<a href="#"><img ng-src="{{ file.iconURL }}" width="60"></a>
<div class="filename"><a href="#">{{ file.fileName }}</a></div>
<div class="date">{{ file.date }}</div>
<div class="uploader">{{ file.user_id }}</div>
</li>
</ul>
</div>
<!-- <form>
<input type="file" name="" ng-model="shipment.shipmentObject.file">
<button class="btn btn-primary" ng-click="shipment.makeFile(shipmentObject.file)" >Upload File</button>
<div>aa {{ newFile }}</div>
</form> -->
<div>
<input data-my-Directive type="file" name="file" ng-model="shipment.shipmentObject.file">
<p>
post request with this data:
</p>
<pre ng-repeat="(key, value) in fileLog">
{{key}} {{ value }}
</pre>
</div>
</uib-tab>