我正在尝试使用和ajax调用将文件发送到我的控制器。我经历了很多答案,然后想到了这段代码。
$('#btn_stock_create').on('click',function(){
var create_stock_type = $('#create_stock_type').val();
var create_tag_no = $('#create_tag_no').val();
var formData = new FormData();
formData.append("file", $("#create_image")[0].files[0]);
$.ajax({
url: '/stocks/create',
type: 'POST',
data: {
_token: CSRF_TOKEN,
create_stock_type:create_stock_type,
create_tag_no:create_tag_no,
create_image:formData,
},
processData: false,
contentType: false,
cache: false,
dataType: 'json',
success: function (data) {
if (data.result == 1) {
table.ajax.reload();
swal({
title: data.status,
text: data.message,
icon: "success",
});
$('#createModal').modal('hide');
$('#createModal').find('form').trigger('reset');
}
}
});
});
我的表单位于引导程序模式内。我的表格如下:
<form id="create_stock_form" class="form-horizontal" enctype="multipart/form-data">
<div class="form-group">
.... (Rest of the inputs)
</div>
<div class="form-group">
<div class="row">
<div class="col-md-4">
<label for="create_image" class="col-md-12 control-label" >Stock Image</label>
<div class="col-md-12">
<input type="file" class="form-control-file" id="create_image">
</div>
</div>
</div>
</div>
</form>
因此,当ajax被调用时,将显示Handler Exception。
C:.. \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php。
谁能告诉我为什么会这样。我似乎无法使用我的Ajax函数将文件发送到控制器。还是对此有其他解决方案。 请帮助我。
答案 0 :(得分:0)
我希望这个帮助
在输入中添加接受属性
<input type="file" class="form-control-file" id="create_image" accept="image/*>
Ajax提交请求
$('#btn_stock_create').on('click',function(){
var formData = new FormData($('#create_stock_form').find('#create_image')[0]);
$.ajax({
url: '/stocks/create',
type: 'POST',
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: formData,
processData: false,
contentType: false,
cache: false,
dataType: 'json',
success: function (data) {
if (data.result == 1) {
table.ajax.reload();
swal({
title: data.status,
text: data.message,
icon: "success",
});
$('#createModal').modal('hide');
$('#createModal').find('form').trigger('reset');
}
}
});
});