在 laravel 中使用 ajax 提交包含文件上传的多个表单时出现空错误
I get an empty error when submitting multiple forms with file uploads with ajax in laravel
我的问题是在 laravel 中使用 ajax 发布多个表单时,我发送表单数据没有任何问题,但我无法发送文件。
文件为空错误。我已经处理了2天了,没有我没有尝试过的方法,请帮助我。
除此之外,我在表单中添加了 multipart,但仍然没有用,我正在与您分享我的代码。
抱歉我的英语不好。
我希望它以正常的第 4 种形式上传 2 张照片,直到 createProduct3 形式,我试图通过执行正常的 new formData() 来获取它们,但我尝试了其他方式,但我无法成功。
它将它作为 [Object 文件] 发送到 Laravel 服务器端。
我的表格
<form class="form" id="createProduct4" method="POST" action="">
<input type="file" class="upload-box-title" id="urun-fotografi" name="urun_fotografi" value="Fotoğraf Seç">
<input type="file" class="upload-box-title" id="urun-dosyasi" name="urun_dosyasi" value="Dosya Seç">
</form>
我的 blade ajax:
function createProducts()
{
var dataString = $("#createProduct1, #createProduct2, #createProduct3, #createProduct4").serialize();
let photo = document.getElementById("urun-dosyasi").files[0];
let photo2 = document.getElementById("urun-fotografi").files[0];
console.log(photo,photo2);
$.ajax({
url: "{{ route('user.product.create') }}",
type: "POST",
data: dataString+"&urun_dosyasi="+photo+"&urun_fotografi="+photo2,
success: function( data ) {
},
error: function(xhr)
{
console.log(xhr);
}
});
}
服务器功能
public function createProduct(Request $request)
{
$file = $request->file('urun_dosyasi');
$file2 = $request->file('urun_fotografi');
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$filename2 = $file2->getClientOriginalName();
$extension2 = $file2->getClientOriginalExtension();
echo $filename,$extension."2. doc: ".$filename2.$extension;
}
当您的表单包含任何 <input type="file">
元素时使用 multipart/form-data
:
<form ... enctype="multipart/form-data">
Ajax :
var form = $('#createProduct4')[0];
var data = new FormData(form);
$.ajax({
url: "{{ route('user.product.create') }}",
type: "POST",
enctype: 'multipart/form-data',
data: data,
processData: false,
contentType: false,
success: function (data) {
console.log("SUCCESS : ", data);
},
error: function (e) {
console.log("ERROR : ", e);
}
});
我的问题是在 laravel 中使用 ajax 发布多个表单时,我发送表单数据没有任何问题,但我无法发送文件。 文件为空错误。我已经处理了2天了,没有我没有尝试过的方法,请帮助我。 除此之外,我在表单中添加了 multipart,但仍然没有用,我正在与您分享我的代码。
抱歉我的英语不好。
我希望它以正常的第 4 种形式上传 2 张照片,直到 createProduct3 形式,我试图通过执行正常的 new formData() 来获取它们,但我尝试了其他方式,但我无法成功。 它将它作为 [Object 文件] 发送到 Laravel 服务器端。 我的表格
<form class="form" id="createProduct4" method="POST" action="">
<input type="file" class="upload-box-title" id="urun-fotografi" name="urun_fotografi" value="Fotoğraf Seç">
<input type="file" class="upload-box-title" id="urun-dosyasi" name="urun_dosyasi" value="Dosya Seç">
</form>
我的 blade ajax:
function createProducts()
{
var dataString = $("#createProduct1, #createProduct2, #createProduct3, #createProduct4").serialize();
let photo = document.getElementById("urun-dosyasi").files[0];
let photo2 = document.getElementById("urun-fotografi").files[0];
console.log(photo,photo2);
$.ajax({
url: "{{ route('user.product.create') }}",
type: "POST",
data: dataString+"&urun_dosyasi="+photo+"&urun_fotografi="+photo2,
success: function( data ) {
},
error: function(xhr)
{
console.log(xhr);
}
});
}
服务器功能
public function createProduct(Request $request)
{
$file = $request->file('urun_dosyasi');
$file2 = $request->file('urun_fotografi');
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$filename2 = $file2->getClientOriginalName();
$extension2 = $file2->getClientOriginalExtension();
echo $filename,$extension."2. doc: ".$filename2.$extension;
}
当您的表单包含任何 <input type="file">
元素时使用 multipart/form-data
:
<form ... enctype="multipart/form-data">
Ajax :
var form = $('#createProduct4')[0];
var data = new FormData(form);
$.ajax({
url: "{{ route('user.product.create') }}",
type: "POST",
enctype: 'multipart/form-data',
data: data,
processData: false,
contentType: false,
success: function (data) {
console.log("SUCCESS : ", data);
},
error: function (e) {
console.log("ERROR : ", e);
}
});