| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <script type="text/javascript" src="/js/jquery-1.11.1.min.js"></script>
- <link rel="stylesheet" type="text/css" href="/js/webuploader-0.1.5/webuploader.css">
- <!--引入JS-->
- <script type="text/javascript" src="/js/webuploader-0.1.5/webuploader.js"></script>
- <!--dom结构部分-->
- <div id="uploader-demo">
- <!--用来存放item-->
- <div id="fileList" class="uploader-list"></div>
- <div id="filePicker">选择图片</div>
- </div>
- <script>
- // 图片上传demo
- jQuery(function() {
- var $ = jQuery,
- $list = $('#fileList'),
- // 优化retina, 在retina下这个值是2
- ratio = window.devicePixelRatio || 1,
- // 缩略图大小
- thumbnailWidth = 100 * ratio,
- thumbnailHeight = 100 * ratio,
- // Web Uploader实例
- uploader;
- // 初始化Web Uploader
- uploader = WebUploader.create({
- // 自动上传。
- auto: true,
- // swf文件路径
- swf: '/js/webuploader-0.1.5/Uploader.swf',
- //swf: BASE_URL + '/js/Uploader.swf',
- // 文件接收服务端。
- server: '/test/upload',
- // 选择文件的按钮。可选。
- // 内部根据当前运行是创建,可能是input元素,也可能是flash.
- pick: '#filePicker',
- //是否允许重复上传
- duplicate :true,
- fileSingleSizeLimit: 2048000,
- //fileSingleSizeLimit: 10,
- // 只允许选择文件,可选。
- accept: {
- title: 'Images',
- extensions: 'gif,jpg,jpeg,bmp,png',
- mimeTypes: 'image/*'
- }
- });
- // 当有文件添加进来的时候
- uploader.on( 'fileQueued', function( file ) {
- //var num = uploader.getFiles().length;
- //console.log(num);
- var $li = $(
- '<div id="' + file.id + '" class="file-item thumbnail">' +
- '<img>' +
- '<div class="info">' + file.name + '</div>' +
- '</div>'
- ),
- $img = $li.find('img');
- $list.append( $li );
- // 创建缩略图
- uploader.makeThumb( file, function( error, src ) {
- if ( error ) {
- $img.replaceWith('<span>不能预览</span>');
- return;
- }
- $img.attr( 'src', src );
- }, thumbnailWidth, thumbnailHeight );
- });
- // 文件上传过程中创建进度条实时显示。
- uploader.on( 'uploadProgress', function( file, percentage ) {
- var $li = $( '#'+file.id ),
- $percent = $li.find('.progress span');
- // 避免重复创建
- if ( !$percent.length ) {
- $percent = $('<p class="progress"><span></span></p>')
- .appendTo( $li )
- .find('span');
- }
- $percent.css( 'width', percentage * 100 + '%' );
- });
- // 文件上传成功,给item添加成功class, 用样式标记上传成功。
- uploader.on( 'uploadSuccess', function( file ) {
- $( '#'+file.id ).addClass('upload-state-done');
- });
- // 文件上传失败,现实上传出错。
- uploader.on( 'uploadError', function( file ) {
- var $li = $( '#'+file.id ),
- $error = $li.find('div.error');
- // 避免重复创建
- if ( !$error.length ) {
- $error = $('<div class="error"></div>').appendTo( $li );
- }
- $error.text('上传失败');
- });
- // 完成上传完了,成功或者失败,先删除进度条。
- uploader.on( 'uploadComplete', function( file ) {
- $( '#'+file.id ).find('.progress').remove();
- });
- uploader.on("error", function (type) {
- if (type == "Q_TYPE_DENIED") {
- alert("请上传JPG、PNG、GIF、BMP格式文件");
- } else if (type == "F_EXCEED_SIZE") {
- alert("单张图片不能超过1M"+type);
- }else {
- alert("上传出错!请检查后重新上传!错误代码"+type);
- }
- });
- });
- </script>
|