我正在尝试使用ajax请求在laravel 5.6中上传csv文件。但是,该文件无法上传。它显示,文件一次又一次被要求。
<form class="form-horizontal file-upload" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<input required="" type="file" name="import_file" id="import_file" />
<br>
<br>
<button class="btn btn-success btn-sm" id="upload_csv" disabled="true" type="submit">Import CSV or Excel File</button>
</form>
$(document).ready(function(){
$('form').submit(function(event){
event.preventDefault();
var formData = new FormData($('this')[0]);
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },
url: "{{url('admin/voter/sub/storecsv')}}",
data: formData,
type: 'post',
async: false,
processData: false,
contentType: false,
success:function(response){
// console.log(response);
alert('uploaded');
}
});
});
});
$this->validate($request,[
'import_file' => 'required',
]);
它显示此导入文件是必需的。我在stackoverflow上经历了许多其他类似的帖子,许多其他成员似乎用相同的代码取得了成功。但是,我找不到我错过的东西。任何帮助,将不胜感激。
答案 0 :(得分:2)
改变这个:
var formData = new FormData($('this')[0]);
到此:
var formData = new FormData($(this)[0]);
答案 1 :(得分:0)
使用
var formData = new FormData(this);