php - 如何在上传完成时使用 Plupload 通过 Ajax 返回数据?

标签 php jquery plupload

在过去的几个小时里,我一直在尝试获取一些东西......队列完成后从 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 行以关联图像时,我通过绑定(bind)到 plupload 对象的 FileUploaded 事件将行 ID 传递回原始表单到隐藏的输入字段。

<input type="hidden" name="vehicle_id_value" id="vehicle_id_value" value="" />

像魅力一样工作!

最佳答案

作为上传过程的一部分,可能已经上传了多个文件。在 UploadComplete 阶段,个人回复不再有效。 如果您想显示有关特定文件上传的信息,您应该绑定(bind)到 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);
});

希望对你有帮助

关于php - 如何在上传完成时使用 Plupload 通过 Ajax 返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555550/

相关文章:

javascript - 成功ajax : if is 200 status code run function else another function

javascript - jQuery 菜单折叠和展开三次

php - 如何为多个 plupload 制作循环

html - 使用 Plupload HTML5 运行时直接上传到 Amazon S3

extjs - plupload AddFile 点击事件不起作用

php - 如果单击 PHP 的链接,则设置变量

php - 如何在数据库中插入由 preg_match_all 获得的数组

javascript - 滚动时如何将菜单栏从页面中间留在顶部?

php - 创建一个包含用户名和图片的页面来显示在线用户的网站

php - 有没有办法将浏览器重定向到本地网络上的文件?