Javascript 如何获取Dropzone.js返回值?
我只是实现了让文件上传到我的网站更容易。文件上传正常,上传完成后,我给文件一个id,并将该id返回浏览器 除了我不知道如何捕获从服务器返回的id之外,这一切都很好。在中,我找到了一些应该这样做的代码,但它不适合我。我现在的代码粘贴在下面 有人知道如何获取服务器返回的值吗?欢迎所有提示Javascript 如何获取Dropzone.js返回值?,javascript,html,file-upload,dropzone.js,Javascript,Html,File Upload,Dropzone.js,我只是实现了让文件上传到我的网站更容易。文件上传正常,上传完成后,我给文件一个id,并将该id返回浏览器 除了我不知道如何捕获从服务器返回的id之外,这一切都很好。在中,我找到了一些应该这样做的代码,但它不适合我。我现在的代码粘贴在下面 有人知道如何获取服务器返回的值吗?欢迎所有提示 <!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-2.1.1.mi
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="/static/js/external/dropzone.min.js"></script>
<link href="/static/css/external/dropzone.css" rel="stylesheet">
<script type="text/javascript">
$(function() {
Dropzone.options.uiDZResume = {
success: function(file, response){
console.log('WE NEVER REACH THIS POINT.');
alert(response);
}
};
});
</script>
</head>
<body>
<form action="/doc"
class="dropzone"
id="my-awesome-dropzone"></form>
</body>
</html>
$(函数(){
Dropzone.options.uiDZResume={
成功:函数(文件、响应){
log('我们从未达到这一点');
警报(响应);
}
};
});
看看dropzone.js的源代码,似乎有很多事件可以听
events: [
"drop"
"dragstart"
"dragend"
"dragenter"
"dragover"
"dragleave"
"addedfile"
"removedfile"
"thumbnail"
"error"
"errormultiple"
"processing"
"processingmultiple"
"uploadprogress"
"totaluploadprogress"
"sending"
"sendingmultiple"
"success"
"successmultiple"
"canceled"
"canceledmultiple"
"complete"
"completemultiple"
"reset"
"maxfilesexceeded"
"maxfilesreached"
]
在这里,“成功”事件似乎是合适的
一个好的起点是将事件侦听器绑定到dropzone,并查看您在此类事件中获得的数据
$('#my-awesome-dropzone').on('success', function() {
var args = Array.prototype.slice.call(arguments);
// Look at the output in you browser console, if there is something interesting
console.log(args);
});
这有用吗
Dropzone.options.myDropzone = {
init: function() {
thisDropzone = this;
this.on("success", function(file, responseText) {
var responseText = file.id // or however you would point to your assigned file ID here;
console.log(responseText); // console should show the ID you pointed to
// do stuff with file.id ...
});
}
};
例如,我设置了将服务器路径附加到图像名称,并在提交时将其作为值传递到表单字段中。只要定义responseText指向文件ID,您就应该得到一个返回
此链接也可能有帮助:尝试以下操作:
Dropzone.options.myAwesomeDropzone = {
success: function(file, response){
//alert(response);
console.log(response);
}
};
它对我有用
$(function() {
var myDropzone = new Dropzone(".dropzone");
myDropzone.on("success", function() {
alert('Uploaded!');
});
});
我正在使用jQuery,这就是我的工作原理:
var dz = $(".my-awesome-dropzone").dropzone()[0];
dz.dropzone.on("success", function (file, response) { ... }));
请注意,
dropzone()
方法向DOM对象添加了一个dropzone
属性。你必须在上调用on()
on对象,而不是jQueryon()
我想把它作为注释添加,但我不能,因为我名声不好
对于那些仍然无法从服务器检索响应的用户,如果使用分块,Dropzone会在这种情况下硬编码空白响应:
因此,分块上传似乎不支持检索响应。好的,谢谢!你可能会有一个我如何做的小例子代码(我的JS技能与我的PHP和Python技能不一样)?我试过了(包括<代码>我的可怕的DROPZORZON/CODE >),但它不起作用。该函数永远不会被调用。我尝试绑定到其他事件,例如
“drop”
(有效)、“dragenter”
(也有效)、“success”
(无效)、“complete”
(也无效)和“addedfile”
(也无效)。你知道为什么有些调用而有些不调用吗?由于不工作事件的性质,我认为服务器端可能有问题<代码>“drop”和“dragenter”
是完全与用户界面相关的事件,而“success”
、“complete”
和“addedfile”
则与服务器端有关。@lechariotdor不错的一个。想法很好。@gabik1参数
对象是一个隐式局部变量,在所有(非箭头)函数中都可用。当您不知道函数中需要多少参数时,它非常有用,因为您可以(几乎)像数组一样使用它。更多信息。这很有帮助!为了更加清晰,我想提到的是“myDropzone”必须是您表单id的驼峰大小写版本。这对我不适用。Dropzone.options.myDropzone={init:function(){this.on(“success”,function(file,responseText){console.log(responseText);//控制台应显示您指向的ID//do stuff with file.ID…});};您正在回复近3年前提供的解决方案。可能是您的Dropzone版本与我的不同,或者您的实例不是“myDropzone”或其他任何一个。如果不发布代码,没有人可以帮助您,您的评论也没有建设性。
var dz = $(".my-awesome-dropzone").dropzone()[0];
dz.dropzone.on("success", function (file, response) { ... }));
if (allFinished) {
_this14.options.chunksUploaded(file, function () {
_this14._finished(files, '', null);
});
}