【发布时间】:2023-04-06 21:48:02
【问题描述】:
我有一个联系表格,允许用户上传多个文件。我正在使用带有formData 的ajax 方法将所有文件发送到我的控制器。我想将所有上传的文件放到我可以处理文件的控制器中。
当我做 dd();它返回 null。
刀片
<form method="POST" enctype="multipart/form-data")}}">
<div id="dropzoneLover" class="dropzone"></div>
<input type="file" class="form-control" name="documents[]" multiple/>
</form>
Javascript
<script>
Dropzone.autoDiscover = false;
$("#dropzoneLover").dropzone({
url: "{{route('form_for_car_lovers')}}",
autoProcessQueue: false,
uploadMultiple: true,
init: function() {
dzClosure = this;
document.getElementById("submit-all").addEventListener("click",
function(e) {
e.preventDefault();
e.stopPropagation();
dzClosure.processQueue();
}),
this.on("sendingmultiple", function(data, xhr, formData) {
formData.append("_token", "{{ csrf_token() }}");
$('input[name="documents[]"]').each(function (index, member)
{
var getDocs = $(member).val();
formData.append('documents[]', getDocs);
});
}),
}
});
</script>
控制器
public function myfiles()
{
$test = $request['documents'];
$test1 = $request->documents;
$test2 = $request->file('documents');
dd($test,$test1,$test2); // All variables returns null
}
【问题讨论】:
-
您如何发送这些文件 - 您的
$.ajax请求发送所有formData的请求在哪里?此外,您的 Javascript 逻辑不正确 - 这不是如何抓取文件并将其附加到 formData -
@AlwaysHelping 我正在使用 dropzone 将所有表单数据发送到控制器。我可以看到我的所有值都进入了控制器,除了这个。我刚刚更新了我的代码,请检查
-
@Dmitry Nope........
-
@AlwaysHelping 请查看我更新的 Javascrip 代码
标签: javascript php jquery laravel multipartform-data