首页 > 解决方案 > 不可预测的行为 JavaScript

问题描述

我有一个使用画布修改图片的视图。使用Ajax,当用户按下按钮时,我调用控制器在数据库中插入有关图片的信息

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.log(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);

问题是有时控​​制器不工作,并且程序继续没有插入数据库或在文件系统中推送图片。这种行为只是偶尔发生,我可以在其中找到一个逻辑。

标签: javascriptphpmysqllaravelhtml5-canvas

解决方案


您应该检查您的数据库操作结果。例如$fototemporal->save();返回一个布尔值。file_put_contents如果失败,还返回写入文件系统的字节或 FALSE。

有了这些,您可以更好地控制您的代码和操作。


推荐阅读