2

似乎 Plupload 是一个很棒的工具。但是我在这里遇到了一个简单的问题。我设置了 multipart = false (我不想分块发送数据),但是,我想显示上传的百分比。但它显示没有上传百分比,并且在上传结束时只显示 100%。这是我的代码。

$(函数(){
        var pluploader = 新的 plupload.Uploader({
            运行时 : 'flash', //flash,gears,flash,silverlight,browserplus,html5
            浏览按钮:'img_video_upload',
            容器:'video_upload_container',
            max_file_size : '3gb',
            //chunk_size : '100kb',
            多部分:假,
            多个队列:假,
            多选:假,
            url : 'url('*/*/videoupload')?>',
            flash_swf_url : '/public/js/plupload/js/plupload.flash.swf',
            过滤器:[
                {标题:“视频文件”,扩展名:“flv”}
            ]
        });

        pluploader.init();

        pluploader.bind('FilesAdded', function(up, files) {
            $('#panelWrapError').remove();
            pluploader.start(); //开始文件上传
        });

        pluploader.bind('UploadProgress', function(up, file) {
            $('#upload_progress').html('进度: ' + file.name + ' ' + file.percent + '% Uploaded ' + " 
"); }); pluploader.bind('FileUploaded', function(up, file, ret) { var response = eval('(' + ret.response + ')'); //隐藏上传进度div //$('#upload_progress').hide(); 如果(响应。成功){ $('#uploadresultwithtime').html('您的视频上传成功,请查看预览。' + '
视频长度:' + response.duration + '秒' + '
视频大小:' + response.size + 'kb' ); } 如果(响应错误){ $('#uploadresultwithtime').html(response.message); } }); pluploader.bind('错误', function(up, err) { $('#panelWrap').prepend('
  • ' + 错误消息 +'
'); }); });
4

1 回答 1

0

您只将“flash”设置为您的运行时。当使用 flash 运行时而不使用分块上传时,Plupload 无法知道上传进度。

您要么必须接受没有使用 flash 的进度指示并激活它将在其中工作的其他运行时(html5、gears 等),要么激活分块上传,使 flash 能够知道它已上传的总块数中有多少块。

这意味着如果你有一个 1mb 的文件要上传并且 chunk_size 设置为 100kb,那么 flash 将能够显示 10,20,30 - 100 %(每个块的一个步骤。)

尝试在 plupload 选项中设置以下内容以获得最佳支持。

运行时:“gears,flash,silverlight,browserplus,html5”,chunk_size:'100kb'

请记住,您的服务器需要支持接收分块上传。

于 2012-05-13T22:55:48.413 回答