如何使用PHP在DropZone中触发错误事件?

Kra*_*ime 9 javascript php jquery dropzone.js

在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);
}
Run Code Online (Sandbox Code Playgroud)

...但是,response即使我从php脚本返回JSON或纯文本,也是未定义的.dropzone.js似乎不支持获取完整的服务器响应,或者至少它不会将其提升到自定义处理程序.我所看到的唯一一个关于在事件上传递第二个参数的提法,在其他问题中也没有直接提出这个问题.

必须有一种方法来获得服务器响应(正如我过去使用其他上传器javascript,如jQuery POST和jqUpload等).看起来相当愚蠢,我无法触发命令来指示上传失败 - 即使文件传输已完成 - 因为它仍然需要在脚本上等待响应.---这意味着我可能会忽略某些东西,这就是为什么我要求帮助,因为他们的文档完全没有关于服务器应该如何响应 - 语言无关,但在我的情况下,我使用的是PHP.

提前致谢.

Spa*_*rsh 12

<?php 
    header('HTTP/1.1 500 Internal Server Error');
    header('Content-type: text/plain');
    $msg = "Your error message here.";
    exit($msg);
?>
Run Code Online (Sandbox Code Playgroud)

注意:不要重定向用户,否则它将无法运行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>
Run Code Online (Sandbox Code Playgroud)

而已!它应该工作.