如何使用Plupload on Upload Complete通过Ajax返回数据?

在过去的几个小时里,我一直在尝试获取一些东西……在完成队列后从pluploader返回任何东西都无济于事。

这是我的JS代码:

var uploader = $('#pluploadDiv').pluploadBootstrap(); uploader.bind("UploadComplete", function(up, files) { var obj = $.parseJSON(response.response); alert(obj.result); }); 

在upload.php脚本的最后一行,我有:

 die('{"jsonrpc" : "2.0", "result" : "'.$_REQUEST['unitID'].'", "id" : "id"}'); 

这对我来说很有意义……但它不起作用,文件上传没有问题,但警报甚至没有触发……没有任何回应。

思考?

编辑新代码作为解决方案

我正在使用的JS(感谢jbl):

 var uploader = $('#pluploadDiv').pluploadBootstrap(); uploader.bind('FileUploaded', function(upldr, file, object) { var myData; try { myData = eval(object.response); } catch(err) { myData = eval('(' + object.response + ')'); } $("#vehicle_id_value").val(myData.result); }); 

Upload.php脚本保持不变,最后一行代码:

 die('{"jsonrpc" : "2.0", "result" : "'.$_REQUEST['unitID'].'", "id" : "id"}'); 

所以基本上当我创建shell行以将图像关联到上传脚本时,我通过绑定到plupload对象的FileUploaded事件将行ID传回原始表单到一个隐藏的输入字段。

  

奇迹般有效!

可以在上传过程中上传多个文件。 在UploadComplete阶段,个人反应不再UploadComplete 。 如果要显示有关特定文件上载的信息,则应绑定到FileUploaded事件而不是UploadComplete 。 就像是 :

 uploader.bind('FileUploaded', function(upldr, file, object) { var myData; try { myData = eval(object.response); } catch(err) { myData = eval('(' + object.response + ')'); } alert(myData.result); }); 

希望这会有所帮助

你试过回声而不是死吗?

 echo '{"jsonrpc" : "2.0", "result" : "'.$_REQUEST['unitID'].'", "id" : "id"}'; 
 uploader.bind('FileUploaded', function (up, file, res) { var res1 = res.response.replace('"{', '{').replace('}"', '}'); var objResponse = JSON.parse(res1); alert(objResponse.fn); });