使用Laravel和Ajax上传单个图像

时间:2016-01-08 16:12:51

标签: php jquery ajax laravel

我正在尝试使用图像和表单来更改此图像。我的想法是用ajax做到这一点,它可以改变图像的形象。这是我的代码:

[HTML]

<h3>Configurar módulo</h3>                          
{!! Form::open(array('url' => 'password/change', 'method' => 'POST', 'id'=>'formImg1_homeModules')) !!}
  <input type="hidden" name="_token" value="{{csrf_token()}}" id="img1Token_homeModules">                           
   <label>Imagen de fondo:</label>      
   <input id="img1Input_homeModules" type="file" name="img1">
   {!!link_to('#', $title = "Guardar", $attributes = array('id' => 'submitImg1_homeModules', 'class' => 'btn btn-default center-block', 'style' => 'width: 50%; margin-top:3%;'), $secure = null)!!}
{!!Form::close()!!}

[JQuery的]

$("#submitImg1_homeModules").click(function(){
    if($("#img1Input_homeModules").val() == ""){
      alert("Debe seleccionar una imagen");
    }else{
        var route = window.location.protocol + "//" + window.location.host + "/ajax/config/uploadImage";
        var image = $("#img1Input_homeModules").val();
        var token = $("#img1Token_homeModules").val();
        var module = "img1";

        $.ajax({
          url: route,
          headers: {'X-CSRF-TOKEN': token},
          type: 'POST',
          dataType: 'json',
          data:{image,module},
          success: function(res){
            alert(res);
          },
          error: function(res){
            console.log(res);
          },
        });
    }
});

[PHP / Laravel(控制器)]

 /**
 * @Post("ajax/config/uploadImage")
 */
public function UploadImage(Request $request){
    if($request->ajax()){
        if(strcmp ($request->module , 'img1' ) == 0){
            \Storage::disk('local')->put('modules/prueba.jpg', \File::get($request->image));
            return 1;
        }else{
            return false;
        }
    }
}

问题在于,当我将图像保存在modules / prueba.jpg中时,它不会保存为jpg文件,我不知道为什么。我做错了什么?还有另一种更简单的方法吗?

0 个答案:

没有答案