我使用Laravel 5.4并使用JQuery传递表单数据。下面是JQuery代码段
$('#upload_product').on('click', function () {
var data = $("#create_post").serializeArray();
data.push({images: jQuery.makeArray(files)});
console.log(data);
jQuery.ajax({
url: '<?php echo $edit ? 'post/update' : '/sell/upload_product';?>',
data: data,
type: "POST",
cache: false,
error: function (xhr, textStatus, errorThrown) {
console.log(xhr.status);
console.log(xhr.responseText);
console.log(errorThrown);
console.log(textStatus);
},
success: function (data) {
$('#postResult').html(data);
}
});
});
控制台数据
路线
Route::post('/sell/upload_product', function (Request $request) {
// echo $request[9];
return view('_components.upload_product', ['title' => $request['title'], 'availability' => $request['availability'], 'category' => $request['category'],
'subcategory' => $request['subcategory'], 'currency' => $request['currency'], 'price' => $request['price'], 'product_details' => $request['product_details'],
'community' => $request['community'], 'images' => $request['images']]);
});
但$request['images']
给出空结果。
修改1
我使用JQuery
从表单中获取File对象,下面是代码片段
function preview_images() {
files = event.target.files;
for (var i = 0; i <= 6; i++) {
if (i >= 1) {
$('.compPhoto' + (i + 1)).html("<img src='" + URL.createObjectURL(event.target.files[i]) + "'>");
} else {
$('.compPhoto' + (i+1)).html("<img src='" + URL.createObjectURL(event.target.files[i]) + "'>");
}
/* console.log(URL.createObjectURL(event.target.files[i]));*/
}
}
当文件输入发生任何变化时,函数preview_images()
被触发。
TIA