我在发送图像时遇到问题,其中有一个文本区域字段供客户端发送照片的描述,当他发送到数据库时,发送的图像就好像所有图像都具有相同的描述,而仅插入一个描述,
我正在使用库 DROPZONE.JS http://dropzonejs.com/
按照我的代码操作..请帮助我。
Dropzone.options.upload = {
thumbnailWidth: 246,
thumbnailHeight: 173,
enqueueForUpload:false,
paramName: "userfile",
sending: function(file, xhr, formData) {
formData.append("titulo", $("#titulo").val());
formData.append("evento", <?php echo $this->uri->segment(4); ?>);
formData.append("capa", $("#cap").val());
}
};
function upload() {
var dz = Dropzone.forElement("#upload");
for (var i = 0; i < dz.files.length; i++) {
dz.filesQueue.push(dz.files[i]);
}
dz.processQueue();
}
最佳答案
如上所述,整个文档中只能有一个 DOM 元素具有 id,否则您将会遇到问题。这可以通过将文件名添加到文本框字段的 ID 来即时解决。
在预览模板中为文本框添加代码
previewTemplate: "<div class=\"dz-preview dz-file-preview\"> ...
<input type=\"text\" class=\"titulo\" data-dz-titulo >
...
data-dz-errormessage></span></div>\n</div>"
当通过addedfile函数渲染previewTemplate时,创建一个名为titulo + file.name的id,为您的元素提供唯一的id。这可以通过在addedfile函数中添加一行代码来完成。
addedfile: function(file) {
file.previewElement = Dropzone.createElement(this.options.previewTemplate);
...
file.previewElement.querySelector("[data-dz-titulo]").id = "titulo" + file.name;
...
file.previewElement.querySelector("[data-dz-size]").innerHTML = this.filesize(file.size);
},
现在您还必须使用文件名在发送函数中获取匹配的标题。
sending: function(file, xhr, formData) {
var filetitulo = document.getElementById('titulo' +file.name).value;
formData.append("titulo", filetitulo);
});
关于javascript - 无法发送多个表单字段 formdata dropzone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875289/