目前问题:plupload上传带参数到后台


目前问题:plupload上传带参数到后台,迟迟没有解决!!!



昨晚到23点多终于完成了!

直接上代码!

var uploader = new plupload.Uploader({ //实例化一个plupload上传对象
                browse_button: 'btnChange',
                url: '/Info/Upload',
                flash_swf_url: 'js/Moxie.swf',
                silverlight_xap_url: 'js/Moxie.xap',
                filters: {
                    mime_types: [ //只允许上传图片文件
                      { title: "图片文件", extensions: "jpg,gif,png" }
                    ]
                }
            });
            uploader.init(); //初始化
            //绑定文件添加进队列事件
            uploader.bind('FilesAdded', function (uploader, files) {
                for (var i = 0, len = files.length; i < len; i++) {
                    var file_name = files[i].name; //文件名
                    var file_size=uploader.files[i].origSize;//文件大小
                    //构造html来更新UI
                    var html = '<tr id="file-' + files[i].id + '"><td class="file-name">' + file_name + '</td><td class="file-size">' + file_size + '</td><td class="progress"></td></tr>';
                    $(html).appendTo('#file-list');
                    !function (i) {
                        previewImage(files[i], function (imgsrc) {
                            $('#file-' + files[i].id).append('<img src="' + imgsrc + '" />');
                        })
                    }(i);
                }
            });
——————————————————————————————这里是重点。在上传之前绑定事件中,重新定义Url即可!!!。。。尴尬啊
            uploader.bind('BeforeUpload', function (uploader, files) {
                uploader.settings.url = "/Info/Upload?cid=" + $("#seled").val();
                console.log(uploader);
                console.log(files);
            });
            document.getElementById('uploadfiles').onclick = function (data) {
                uploader.start();
                return false;
            };
            //plupload中为我们提供了mOxie对象
            //有关mOxie的介绍和说明请看:https://github.com/moxiecode/moxie/wiki/API
            //如果你不想了解那么多的话,那就照抄本示例的代码来得到预览的图片吧
            function previewImage(file, callback) {//file为plupload事件监听函数参数中的file对象,callback为预览图片准备完成的回调函数
                if (!file || !/image\//.test(file.type)) return; //确保文件是图片
                if (file.type == 'image/gif') {//gif使用FileReader进行预览,因为mOxie.Image只支持jpg和png
                    var fr = new mOxie.FileReader();
                    fr.onload = function () {
                        callback(fr.result);
                        fr.destroy();
                        fr = null;
                    }
                    fr.readAsDataURL(file.getSource());
                } else {
                    var preloader = new mOxie.Image();
                    preloader.onload = function () {
                        preloader.downsize(300, 300);//先压缩一下要预览的图片,宽300,高300
                        var imgsrc = preloader.type == 'image/jpeg' ? preloader.getAsDataURL('image/jpeg', 80) : preloader.getAsDataURL(); //得到图片src,实质为一个base64编码的数据
                        callback && callback(imgsrc); //callback传入的参数为预览图片的url
                        preloader.destroy();
                        preloader = null;
                    };
                    preloader.load(file.getSource());
                }
            }


posted @ 2017-04-03 11:17  Martin_lee  阅读(569)  评论(0编辑  收藏  举报