如何使用PHP在DropZone中触发错误事件
How can I trigger the error event in DropZone using PHP?
在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似乎不支持获取完整的服务器响应,或者至少它没有将其提升到自定义处理程序。我唯一看到的关于在事件上传递第二个参数的地方是在SO上的其他问题中,而不是直接问这个问题。
必须有一种方法来获得服务器响应(就像我过去使用其他上传器javascript(如jQueryPOST和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>
就是这样!它应该起作用。
如果发送任何非200响应标头,Dropzone会将其检测为错误并触发error(file, response)
事件。错误信息可以以JSON形式进入,并可通过response.your_msg_variable
访问
注意,仅仅打印response
不会显示任何有用的东西,因为它是一个对象,您可以使用console.log(JSON.stringify(responseText, null, 4));
这将很好地打印下4级的对象
- 如何使用node.js将web和错误事件记录到Splunk
- 为什么我的Jquery.ajax调用会触发错误事件
- gulpfile 引发错误事件.js:154
- 错误事件显示图片 - JavaScript
- 本地错误事件之前的全局ajaxError事件
- 如何从视频标记错误事件中获取字符串/消息或代码
- WebSocket ws如何模拟错误事件
- 在主干视图中处理图像错误事件
- 如何检测 IE 10+ 的错误事件
- 节点 JS 取消处理程序错误事件
- 未定义 Firefox JS 引用错误事件
- jquery .one() 加载和错误事件不起作用
- 节点.js侦听进程错误事件
- 节点 http.客户端请求不会触发“错误”事件
- 我应该使用什么尝试并捕获块或错误事件
- 运行Yeoman时发生未处理的错误事件
- ipad独立网络应用程序上的视频标记错误事件不起作用
- Backbone.js-保存对象时未触发错误事件
- gullow uglify的未处理错误事件
- React-React.render()上未处理的错误事件