文件上传插件web uploader

来源:互联网 发布:java 深度遍历 编辑:程序博客网 时间:2024/06/05 22:52

API文档地址:http://fex.baidu.com/webuploader/doc/index.html#WebUploader_Uploader_getFiles

$(function(){

// 初始化Web Uploader

var uploader = WebUploader.create({

// 选完文件后,是否自动上传。

auto:true,

// swf文件路径

swf:'${basepath}/webuploader-0.1.5/Uploader.swf',

// 文件接收服务端。

server: server,

//这里根据需要的上传地址自行上传//设置文件上传域的name

failVal:'file',

// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.

pick:"#filePicker",

//这地方说白了就是入口,你需要在哪添加上传按钮,就把拿个元素的id放过来,有可能是input,也可能是a// 只允许选择图片文件。

accept: {

title:'Images',

extensions:'gif,jpg,jpeg,png',

mimeTypes:'image/jpg,image/jpeg,image/png'

},

//文件上传方式,POST或者GET

method:'POST',

//这里是控制单个文件上传文件大小

fileSingleSizeLimit: maxSize *1024 *1024,

//文件上传请求的参数表,每次发送都会发送此对象中的参数

formData:{'token':uptoken}, });

//这里是上传初始化后动作,括号里第一个参数是事件名称,这是是成功事件

uploader.on('uploadSuccess',

function(file ,response) {

eval(callback(file ,response));

//这里我做了一个回掉,获取服务器回传的数据,因为上传的是一个图片,这是是对服务器回传的图片哈希码进行处理 })

//上传失败事件,我只是加了一个日志打印,一般都是会提示用户上传失败了,有个自己网站设计的弹框什么的

uploader.on('uploadError',function(file, reason){

alert("上传失败");

console.log(reason)

})

(二)

jquery实现简单的上传功能

  1. <span style="font-size:14px;"><script type="text/javascript">  
  2.   $(function(){  
  3.    /*init webuploader*/  
  4.    var $list=$("#thelist");   //这几个初始化全局的百度文档上没说明,好蛋疼。  
  5.    var $btn =$("#ctlBtn");   //开始上传  
  6.    var thumbnailWidth = 100;   //缩略图高度和宽度 (单位是像素),当宽高度是0~1的时候,是按照百分比计算,具体可以看api文档  
  7.    var thumbnailHeight = 100;  
  8.   
  9.    var uploader = WebUploader.create({  
  10.        // 选完文件后,是否自动上传。  
  11.        auto: false,  
  12.   
  13.        // swf文件路径  
  14.        swf: '${ctxStatic }/webupload/Uploader.swf',  
  15.   
  16.        // 文件接收服务端。  
  17.        server: '/apm-web/a/test/',  
  18.   
  19.        // 选择文件的按钮。可选。  
  20.        // 内部根据当前运行是创建,可能是input元素,也可能是flash.  
  21.        pick: '#filePicker',  
  22.   
  23.        // 只允许选择图片文件。  
  24.        accept: {  
  25.            title: 'Images',  
  26.            extensions: 'gif,jpg,jpeg,bmp,png',  
  27.            mimeTypes: 'image/*'  
  28.        },  
  29.        method:'POST',  
  30.    });  
  31.    // 当有文件添加进来的时候  
  32.    uploader.on( 'fileQueued'function( file ) {  // webuploader事件.当选择文件后,文件被加载到文件队列中,触发该事件。等效于 uploader.onFileueued = function(file){...} ,类似js的事件定义。  
  33.        var $li = $(  
  34.                '<div id="' + file.id + '" class="file-item thumbnail">' +  
  35.                    '<img>' +  
  36.                    '<div class="info">' + file.name + '</div>' +  
  37.                '</div>'  
  38.                ),  
  39.            $img = $li.find('img');  
  40.   
  41.   
  42.        // $list为容器jQuery实例  
  43.        $list.append( $li );  
  44.   
  45.        // 创建缩略图  
  46.        // 如果为非图片文件,可以不用调用此方法。  
  47.        // thumbnailWidth x thumbnailHeight 为 100 x 100  
  48.        uploader.makeThumb( file, function( error, src ) {   //webuploader方法  
  49.            if ( error ) {  
  50.                $img.replaceWith('<span>不能预览</span>');  
  51.                return;  
  52.            }  
  53.   
  54.            $img.attr( 'src', src );  
  55.        }, thumbnailWidth, thumbnailHeight );  
  56.    });  
  57.    // 文件上传过程中创建进度条实时显示。  
  58.    uploader.on( 'uploadProgress'function( file, percentage ) {  
  59.        var $li = $( '#'+file.id ),  
  60.            $percent = $li.find('.progress span');  
  61.   
  62.        // 避免重复创建  
  63.        if ( !$percent.length ) {  
  64.            $percent = $('<p class="progress"><span></span></p>')  
  65.                    .appendTo( $li )  
  66.                    .find('span');  
  67.        }  
  68.   
  69.        $percent.css( 'width', percentage * 100 + '%' );  
  70.    });  
  71.   
  72.    // 文件上传成功,给item添加成功class, 用样式标记上传成功。  
  73.    uploader.on( 'uploadSuccess'function( file ) {  
  74.        $( '#'+file.id ).addClass('upload-state-done');  
  75.    });  
  76.   
  77.    // 文件上传失败,显示上传出错。  
  78.    uploader.on( 'uploadError'function( file ) {  
  79.        var $li = $( '#'+file.id ),  
  80.            $error = $li.find('div.error');  
  81.   
  82.        // 避免重复创建  
  83.        if ( !$error.length ) {  
  84.            $error = $('<div class="error"></div>').appendTo( $li );  
  85.        }  
  86.   
  87.        $error.text('上传失败');  
  88.    });  
  89.   
  90.    // 完成上传完了,成功或者失败,先删除进度条。  
  91.    uploader.on( 'uploadComplete'function( file ) {  
  92.        $( '#'+file.id ).find('.progress').remove();  
  93.    });  
  94.       $btn.on( 'click'function() {  
  95.         console.log("上传...");  
  96.         uploader.upload();  
  97.         console.log("上传成功");  
  98.       });  
  99.   });  
  100.  </script></span>  

原创粉丝点击