У меня есть представление, которое использует холст для изменения изображения. Используя Аякс, я вызываю контроллер для вставки в базу данных информации об изображении, когда пользователь нажимает кнопку
var img = new Image();
img.src = "imagenes/uploadLookTemporal/<?php echo $url_foto_temporal; ?>";
var path = "imagenes/uploadLookTemporal/<?php echo $url_foto_temporal; ?>";
window.location.replace("annadir_prenda");
$.ajax({
type: "post",
url: "{{ url('/postajax') }}",
contentType: 'multipart/form-data',
processData: false,
data: formData,
cache: false,
//success: function (response) {
// alert(response);
// console.info(dataURL);
//},
});
// Контроллер
public function post(Request $request){
// Identificamos al usuario
$user= Auth::user();
$userfind = User::find($user->id);
$aleatorio = rand();
$fototemporal = new Tablatemporal();
$fototemporal->user = $userfind->id;
$fototemporal->url_foto = $userfind->id.'_temporal'.'_'.$aleatorio.'.'.'png';
$fototemporal->save();
$file = $request;
$fotobase64 = explode ('data:image/png;base64,',$file);
$foto = base64_decode($fotobase64[1]);
// Alamcenamos la foto temporal y guardamos su dirección en la base de datos temporal
//file_put_contents('imagenes/uploadLookTemporal/'.'temporal_'.$userfind->id.'_temporal.png', $foto);
file_put_contents('imagenes/uploadLookTemporal/'.$userfind->id.'_temporal'.'_'.$aleatorio.'.'.'png', $foto);
Проблема в том, что иногда контроллер не работает, и программа продолжает работу без вставки в базу данных или загрузки картинки в файловую систему. Такое поведение бывает только иногда, и я могу найти в этом логику.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны проверить результат работы вашей базы данных. Например, $fototemporal->save(); возвращает логическое значение. Также file_put_contents возвращает байты, записанные в файловой системе, или FALSE в случае сбоя.
С ними вы получаете больше контроля над своим кодом и операциями.