Dropzone 发送空
Dropzone send empty
我使用以下脚本设置了 dropzone:
<script>
Dropzone.options.myDropzone = {
url: 'assets/PHP/createNieuws.php',
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 1,
maxFiles: 1,
maxFilesize: 1,
acceptedFiles: 'image/*',
addRemoveLinks: true,
createImageThumbnails: true,
init: function () {
dzClosure = this; // Makes sure that 'this' is understood inside the functions below.
this.on("success", function (file, responseText) {
console.log(responseText);
});
// for Dropzone to process the queue (instead of default form behavior):
document.getElementById("submit").addEventListener("click", function (e) {
// Make sure that the form isn't actually being sent.
e.preventDefault();
e.stopPropagation();
if (dzClosure.getQueuedFiles().length > 0) {
dzClosure.processQueue();
} else {
dzClosure.uploadFiles([{ name: 'nofiles' }]); //send empty
}
});
//send all the form data along with the files:
this.on("sendingmultiple", function (data, xhr, formData) {
formData.append("titel", jQuery("#titel").val());
formData.append("artikel", jQuery("#artikel").val());
});
}
}
</script>
我的服务器上还有一个名为 default.png 的文件。如果没有检测到图像,我希望 dropzone 引用 default.png。如您所见,我已经尝试过此解决方案但没有成功:
我的 chrome 控制台出现以下 returns 错误:
dropzone.js:1497 未捕获的类型错误:无法读取未定义的 属性 'filename'
我的dropzone版本是5.1.0。
知道如何解决这个问题吗?
发生这种情况是因为新版本假定存在 file.upload
对象 filename
。将模拟文件更改为
{ name: 'nofiles', upload: { filename: 'nofiles' } }
应该可以解决问题。
您还应该升级到 5.1.1
,因为它解决了与此相关的错误。
对于在使用 uploadFiles 函数时由于 append 方法在 firefox 上出现错误但仍希望提交 phat xhr 请求并为您处理所有内容的人,我建议不要使用
dropzone.uploadFile({
name: 'nofiles',
upload: {
filename: 'nofiles'
}
})
使用
dropzone._uploadData(
[
{
upload: {
filename: ''
}
}
],
[
{
filename: '',
name: '',
data: new Blob()
}
]
);
我使用以下脚本设置了 dropzone:
<script>
Dropzone.options.myDropzone = {
url: 'assets/PHP/createNieuws.php',
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 1,
maxFiles: 1,
maxFilesize: 1,
acceptedFiles: 'image/*',
addRemoveLinks: true,
createImageThumbnails: true,
init: function () {
dzClosure = this; // Makes sure that 'this' is understood inside the functions below.
this.on("success", function (file, responseText) {
console.log(responseText);
});
// for Dropzone to process the queue (instead of default form behavior):
document.getElementById("submit").addEventListener("click", function (e) {
// Make sure that the form isn't actually being sent.
e.preventDefault();
e.stopPropagation();
if (dzClosure.getQueuedFiles().length > 0) {
dzClosure.processQueue();
} else {
dzClosure.uploadFiles([{ name: 'nofiles' }]); //send empty
}
});
//send all the form data along with the files:
this.on("sendingmultiple", function (data, xhr, formData) {
formData.append("titel", jQuery("#titel").val());
formData.append("artikel", jQuery("#artikel").val());
});
}
}
</script>
我的服务器上还有一个名为 default.png 的文件。如果没有检测到图像,我希望 dropzone 引用 default.png。如您所见,我已经尝试过此解决方案但没有成功:
我的 chrome 控制台出现以下 returns 错误:
dropzone.js:1497 未捕获的类型错误:无法读取未定义的 属性 'filename'
我的dropzone版本是5.1.0。
知道如何解决这个问题吗?
发生这种情况是因为新版本假定存在 file.upload
对象 filename
。将模拟文件更改为
{ name: 'nofiles', upload: { filename: 'nofiles' } }
应该可以解决问题。
您还应该升级到 5.1.1
,因为它解决了与此相关的错误。
对于在使用 uploadFiles 函数时由于 append 方法在 firefox 上出现错误但仍希望提交 phat xhr 请求并为您处理所有内容的人,我建议不要使用
dropzone.uploadFile({
name: 'nofiles',
upload: {
filename: 'nofiles'
}
})
使用
dropzone._uploadData(
[
{
upload: {
filename: ''
}
}
],
[
{
filename: '',
name: '',
data: new Blob()
}
]
);