图片上传webuploader

/** * 基于jquery的图片上传控件 */!function ($) {

    "use strict";    //定义上传事件    var upImgEvent = {        fileQueued: ‘fileQueued‘,//文件加载的时候触发        //statusChange: ‘statuschange‘,        uploadSuccess: ‘uploadSuccess‘,//文件上传成功触发默认路径应该是固定的        uploadError: ‘uploadError‘,//文件上传报错触发        error: ‘error‘//文件上传验证报错的时候触发,比如大小,上传重复图片    };

    //定义内部使用函数    var _util = {        _isSupportImage: function () {            var data = new Image();            var support = true;            data.onload = data.onError = function () {                if (this.width != 1 || this.height != 1) {                    support = false;                }            };            data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";            return support;        }(),        _renderHtml: function (file) {            return $(‘<div class="file_img" id="‘ + file.id + ‘">‘ +            ‘<div class="delete"><a href="javascript:deleteImg(\‘‘ + file.id + ‘\‘,1)">删除</a></div>‘ +            ‘<span style="vertical-align: middle; display: inline-block; height: 100%;"></span>‘ +            ‘<img id="img‘ + file.id + ‘"  title="‘ + file.name + ‘" src="‘ + window.base + ‘/resources/images/loading_.gif" /> ‘ +            ‘<div id="wart" style="position:absolute;z-index:99;left:5px;top:10px;"><span style="color: blue">图片正在上传.请等待...</span><div>‘+            ‘</div>‘)        },        _showError: function (code) {            $(‘body‘).hideLoading();            $("img").next().remove();            var text = null;            switch (code) {                case ‘exceed_size‘:                    text = ‘文件太大了..请重新上传‘;                    break;                case ‘interrupt‘:                    text = ‘上传暂停..‘;                    break;                default:                    text = ‘上传失败,请重试...‘;                    break;            }            alert(text);        }    };

    var Img = function (element, options) {        var imgRadio = {            //图片属性            _ratio: function () {                if (window.devicePixelRatio) {                    return window.devicePixelRatio;                } else {                    return 1;                }            },  //像素比例            thumbWidth: 140 * this._ratio,            thumbHeight: 140 * this._ratio        };        //构造默认options        var defaultOption = {            packId:"#"+options.packId,            swf: window.base + ‘/resources/js/webuploader/Uploader.swf‘,//ie6,7,8 需要flash支持,默认优先Html5            server: "http://localhost:8080/person"+options.uploadPath,//文件上传的服务器路径            pick: {                id: "#"+options.uploaderId,                multiple: options.isMultiple//是否单选            },            duplicate: true,//可以重复            sendAsBinary: true,//android4 有些机型必须开启 为了兼容 都启用这种模式            auto: true,//开启选择图片自动上传            fileVal: ‘bin‘,//文件上传字段名称            fileSingleSizeLimit: 10 * 1024 * 1024,  //10M 单个图片只能最大10M            disableGlobalDnd: true,//不能拖拽            accept: {                //上传图片所支持的类型                title: "上传图片",                extensions: ‘gif,jpg,jpeg,bmp,png‘,                mimeTypes: ‘image/*‘            },            resize: false,//不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!            //压缩            compress: {                width: 1600,                height: 1600,                // 图片质量,只有type为`image/jpeg`的时候才有效。                quality: 90,                // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.                allowMagnify: false,                // 是否允许裁剪。                crop: false,                // 是否保留头部meta信息。                preserveHeaders: true,                // 如果发现压缩后文件大小比原来还大,则使用原来图片                // 此属性可能会影响图片自动纠正功能                noCompressIfLarger: false,                // 单位字节,如果图片大小小于此值,不会采用压缩。                compressSize: 1024 * 1024 * 1            },            callback:undefined || options.callback,            success:undefined || options.success        };        this.init(defaultOption,imgRadio);    };    Img.prototype.init = function (options,radio) {        var uploader = WebUploader.create(options);        //构造监听事件        uploader.on(upImgEvent.fileQueued, function (file) {            $(‘body‘).showLoading();            $(options.pick.id).showLoading();            if (file.getStatus() === ‘invalid‘) {                _util._showError(file.statusText);            }            if(options.callback!=undefined && options.callback instanceof Function){                this.makeThumb(file, function (error, src) {                    if (error) {                        console.log("can not preview :" + error);                        return;                    }                    if (_util._isSupportImage) {                        options.callback.apply(this,[file,src]);                    }                }, radio.thumbWidth, radio.thumbHeight);            }else{                var html = _util._renderHtml(file);                //构造预览图                this.makeThumb(file, function (error, src) {                    var img = $("#img" + file.id);                    if (error) {                        console.log("can not preview :" + error);                        return;                    }                    if (_util._isSupportImage) {                        img.empty().attr(‘src‘, src);                    }                }, radio.thumbWidth, radio.thumbHeight);                html.appendTo($(options.packId));            }        });        uploader.on(upImgEvent.uploadSuccess, function (file, response) {            if (response.success) {                $(‘body‘).hideLoading();                $(options.pick.id).hideLoading();                $("img").next().remove();                var imgResponse = response.data;                if(options.success!=undefined && options.success instanceof Function){                    options.success.apply(this,[file,imgResponse]);                }            }else{                $(‘body‘).hideLoading();                $("img").next().remove();                alert(response.msg);            }        });        uploader.on(upImgEvent.uploadError, function (file) {            $(‘body‘).hideLoading();            $("img").next().remove();            alert("文件上传失败" + file.name);        });        uploader.on(upImgEvent.error, function (code) {            $(‘body‘).hideLoading();            $("img").next().remove();            if (code === ‘F_DUPLICATE‘)                alert("文件已经存在.请换个图片重新上传...");            else if (code === ‘F_EXCEED_SIZE‘)                alert("文件不能超过10M,请重新上传");            else if (code === ‘Q_TYPE_DENIED‘)                alert("文件类型只能是图片类型,请重新上传");            else                alert("error type :" + code);        });    };    $.webUploader = function (options) {        return new Img(this, options);    }}(window.jQuery);function deleteImg(id, type){    $("#" + id).remove();    //如果是sybd则显示上传插件    if (type == 1) {        $("#sybd").parent().show();    }}
时间: 2024-11-03 22:55:32

图片上传webuploader的相关文章

百度上传工具webuploader,图片上传附加参数

项目中需要上传视频,图片等资源.最先做的是上传图片,开始在网上找了一款野鸡插件,可以实现图片上传预览(无需传到后台).但是最近这个插件出了莫名的问题,不易修复,一怒之下,还是决定找个大点的,靠谱的插件吧.加之上传视频就是用的webuploader,所以上传图片也理所当然选它了. 插件初始化,js引用什么的,官方文档上都写的比较清楚,建议直接去官方api去看 http://fex.baidu.com/webuploader/getting-started.html#图片上传 官方api上值给出了上

WebUploader文件图片上传插件的使用

最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUploader /*图片上传 */ var $ = jQuery, $img=$("#imagePath_img"), // 优化retina, 在retina下这个值是2 ratio = window.devicePixelRatio || 1, // 缩略图大小 thumbnailWid

妈蛋:kinMaxShow轮播图异常,WebUploader图片上传坑爹,图片被压缩了

今天晚上在改造轮播图. 原来的代码是这样的: <div> <img src="${static}/image/index/banner/`.jpg" /> </div> <div> <img src="${static}/image/index/banner/2.jpg" /> </div> <div> <img src="${static}/image/index/

妈蛋:kinMaxShow旋转木马异常,WebUploader图片上传坑爹,图像被压缩

今天晚上在改造轮播图. 原来的代码是这种: <div> <img src="${static}/image/index/banner/`.jpg" /> </div> <div> <img src="${static}/image/index/banner/2.jpg" /> </div> <div> <img src="${static}/image/index/b

Asp.Net Mvc 使用WebUploader 多图片上传

来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是一次只能传一张.由于现在 项目用的是MVC,像Asp那样 拖控件 是不现实了.在我脑海中立刻就浮现出一个想法,网上一定有插件,哈哈.去网上一搜索,哇哦这么多.在众多的插件中我被百度的WebUploader吸引了.官网上写着:"WebUploader是由Baidu WebFE(FEX)团队开发的一个简

百度图片上传插件【webuploader】

插件功能 |webuploader |文件上传 |图片上传 官方文档http://fex.baidu.com/webuploader/ 引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"> <!--引

webuploader项目中多图片上传实例

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> 百度uploader Demo</title> <!--引入CSS--> <link rel="stylesheet" type="t

关于文件上传-图片上传

本次开发采用uploader插件   需要在前台引入 使用该插件的 Uploader.swf文件(用于使用时js指向) 在wingsUploader.js 中对uploader插件进行设置 (function($) { // // 设置属性 var uploader; var ratio = window.devicePixelRatio || 1; //用于缩略图 // var thumbnailWidth = 50 * ratio; //缩略图的宽 // var thumbnailHeigh

详细阐述Web开发中的图片上传问题

Web开发中,图片上传是一种极其常见的功能.但是呢,每次做上传,都花费了不少时间. 一个"小功能"花费我这么多时间,真心不愉快. So,要得认真分析下原因. 1.在最初学习Java Web开发的时候,经验不足,属于能力问题,比如对技术认识不到位. 2.图片上传是一类问题,而不是一个问题.   比如,大家都会做饭,但每个人自己做饭是有不同的.做了一个人吃.一家人吃.喜事待客做好几桌,是不同的问题.   同样的,图片上传,是上传一张还是多张,前端的用户体验如何,后端逻辑处理是否正确,图片存