我正在尝试使用图像和表单来更改此图像。我的想法是用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文件,我不知道为什么。我做错了什么?还有另一种更简单的方法吗?