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)
而已!它应该工作.