在 dropzone.js 中,有一个事件 error
,但是我找不到任何关于如何从 PHP 触发它的文档。
我已尝试从 PHP 发送各种 header() 响应,包括 404、500、503 等等,但此事件尚未触发。
我想要做的是,服务器检查 mime 以查看它是否有效,如果无效,我将丢弃该文件,理想情况下 -- 返回一个错误,以便 dropzone 可以做出相应的响应。
从 javascript 方面,我尝试了以下方法:
.on("complete", function(file,response) {
console.log(response);
}
.on("error", function(file,response) {
console.log(response);
}
.on("success", function(file,response) {
console.log(response);
}
... 然而,response
是未定义的,即使我从 php 脚本返回 JSON 或纯文本。 dropzone.js 似乎不支持获取完整的服务器响应,或者至少它不会将其提升到自定义处理程序。我看到的唯一提到在事件上传递第二个参数的地方是在其他没有直接问这个问题的问题中。
必须有一种方法来获取服务器响应(就像我过去使用其他 uploader javascript 所做的那样,例如 jQuery POST 和 jqUpload 等等)。我无法触发命令来指示上传失败,这似乎很愚蠢——即使文件传输已完成——因为它仍然需要等待脚本的响应。 --- 这意味着我可能忽略了一些东西,这就是为什么我要寻求帮助,因为他们的文档完全没有说明服务器应该如何响应 --- 语言无关,但是在我的例子中,我使用的是 PHP。
提前致谢。
最佳答案
<?php
header('HTTP/1.1 500 Internal Server Error');
header('Content-type: text/plain');
$msg = "Your error message here.";
exit($msg);
?>
注意:不要重定向用户,否则它不会运行 exit($msg)
<script type="text/javascript">
$(document).ready(function () {
Dropzone.options.dropzone = {
maxFilesize: 10,
init: function () {
this.on("uploadprogress", function (file, progress) {
console.log("File progress", progress);
});
}
};
});
</script>
就是这样!它应该有效。
关于javascript - 如何使用 PHP 在 DropZone 中触发错误事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085272/