Laravel:通过Ajax发送文件

时间:2017-06-19 19:24:20

标签: php ajax laravel

我尝试使用Ajax和Laravel上传文件,每次尝试上传文件时都会返回空。这是Laravel中的方法:

public function save_vehicles(Request $request){
    $files=$request->file('input_file_vehicles');
    return response()->json(['File: '.$files]);
    \Log::info($files);
}

这是Ajax函数:

var save_vehicles=function(input_file){
  var formData = new FormData();
    formData.append("input_file_vehicles",input_file);
    return $.ajax({
        type: 'GET',
        dataType: 'json',
        processData: false,
        contentType:  false,
        data: formData,
        url: '/save/vehicles'
    });
}

此次通话的结果是:

  

"文件:"

它返回空。

3 个答案:

答案 0 :(得分:1)

jquery代码

var save_vehicles=function(input_file){
    var formData = new FormData($('#formElem'));
    return $.ajax({
        type: 'POST',
        dataType: 'json',
        processData: false,
        contentType:  false,
    headers: {
        'X-CSRF-TOKEN': '{{ csrf_token() }}'
    },
        data: formData,
        url: '/save/vehicles'
    });
}

Laravel代码

$destinationPath = 'path/th/save/file/';
$image = $request->file('input_file_vehicles');
$name =  $image->getClientOriginalName();
$extension = $image->getClientOriginalExtension();
$file_name =  $name;
$image->move($destinationPath,$file_name);

答案 1 :(得分:0)

您正在追加input_file_vehicles但尝试在控制器方法中访问input_file_vehicle

答案 2 :(得分:-1)

您的表单应如下所示

<form action="/" name="myForm" id="myForm" method="post" enctype='multipart/form-data'>
</form>