我使用laravel 5.4和dropzone上传表单中的照片。
我有一个包含大量输入的表单。我想要的是当用户点击提交按钮,上传照片然后发送所有输入名称。
我的表单如下:
// initialize dropzone
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone(
"#myDropzone",
{
url: "/company",
method: "post",
uploadMultiple: true,
parallelUploads: 6,
maxFiles: 6,
addRemoveLinks: true,
acceptedFiles: '.jpg,.jpeg,.JPEG,.JPG,.png,.PNG',
autoProcessQueue: false,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
init: function() {
var myDropzone = this;
$('#companyForm').on("submit", function(e) {
if(myDropzone.files.length > 0) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
}
});
}
}
);
我的dropzone配置:
CHECK CONSTRAINT
单击提交时,将发送文件,但不发送输入字段。
如何沿文件发送输入????
答案 0 :(得分:0)
我找到了一个解决方案......我认为这不是最有效的方法,但它有效。
将id =“companyForm”替换为配置“myDropzone”中的dropzone id
使用div进行dropzone预览<div id="dropzonePreview" class="dropzone">
修改了配置:https://kopy.io/QYxjy
重定向是一个问题(仅当提交文件时)。控制器return redirect()->route('home');
但不重定向表单 - 仅在提交没有文件时;
我做了一个修复:window.location.href=home;
其中home是刀片中的变量。 - 也许有人有更好的主意。
现在在控制器中,我在一个请求中获取所有数据:)