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

标签 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);
}

... 然而,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/

相关文章:

javascript - 将 JSON 解析为 HTML 表

javascript - 使用什么技术手动使文本具有闪烁效果

php - $this 变量在 PHP 中的行为

php - 使用php表单将图片上传到mysql

javascript - 使用 javascript 清除/重置 formData()

javascript - 添加新文本字段后如何使用 Javascript 保留文本字段的值?

javascript - 使用 Grunt 时如何检测不同文件夹中的相同文件名?

javascript - 启用/禁用按钮的下拉菜单

php - 如何自动解析 RSS 提要以存储在 MySQL 数据库中?

jquery - 将元素覆盖在 CSS 中的副本上