Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:通过Ajax发送文件_Php_Ajax_Laravel - Fatal编程技术网

Php Laravel:通过Ajax发送文件

Php Laravel:通过Ajax发送文件,php,ajax,laravel,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函数: va

我尝试使用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'
    });
}
此调用的结果是:

“文件:”

它返回空。

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'
    });
}
拉威尔码

$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);

您的表单应该如下所示

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


您正在添加
输入文件车辆
,但试图在控制器方法中访问
输入文件车辆

请将您的表单和输入文件车辆一起发布!=input_file_vehicle(您正在通过AJAX发送“input_file_vehicle”,但您的Laravel文件中应包含“input_file_vehicle”)最初是input_file_vehicle,但我在这里发布之前对其进行了更改。使用浏览器开发工具检查您是否正在发送该文件input@GabrielAlejandro真的变量名不翻译没关系:)对不起,原来是输入文件,但我在这里发布之前更改了它。这不是真正的错误,谢谢你的回答。这在使用AJAX时并不重要。事实上,您甚至不需要表单包装器。