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

Ton*_*y M 6 php jquery plupload

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

这是我的JS代码:

var uploader = $('#pluploadDiv').pluploadBootstrap();

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

});
Run Code Online (Sandbox Code Playgroud)

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

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

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

思考?

编辑新代码作为解决方案

我正在使用的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);
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

<input type="hidden" name="vehicle_id_value" id="vehicle_id_value" value="" />
Run Code Online (Sandbox Code Playgroud)

奇迹般有效!

jbl*_*jbl 11

可以在上传过程中上传多个文件.在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);
});
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助

  • 不要'评价'那个!相反,通过JSON.parse运行它.如果您不幸需要支持oldIE,那么可以使用polyfill. (2认同)