webuploader实现上传图片到服务器功能


Posted in Javascript onAugust 16, 2018

本文为大家分享了webuploader实现上传图片到服务器的具体代码,供大家参考,具体内容如下

效果图:

webuploader实现上传图片到服务器功能

一、引入资源文件

1.1 引入webuploader.css文件

<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="../../css/plugins/webuploader/webuploader.css" >

1.2 引入webuploader.min.js文件

<!--引入JS-->
<script type="text/javascript" src="../../js/plugins/webuploader/webuploader.min.js"></script>

二、HTML代码

<div class = "row">
 <div class="btns col-sm-2">
  <div id="picker">选择文件</div>
  <button id="ctlBtn" class="btn default-btn">开始上传</button>
 </div>
 <!--用来存放文件信息-->
 <div id="thelist" class="uploader-list col-sm-10"></div>
</div>

三、JavaScript代码

<script type="text/javascript">
  $(function(){
   var uploader = WebUploader.create({
    // 选完文件后,是否自动上传。
    auto: false,
    // 文件接收服务端。
     server: '/common/webupload_pic',
     // 选择文件的按钮。可选。
     // 内部根据当前运行是创建,可能是input元素,也可能是flash.
     pick: '#picker',
     // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
     resize: false,
     // 只允许选择图片文件。
     accept: {
      title: 'Images',
      extensions: 'gif,jpg,jpeg,bmp,png',
      mimeTypes: 'image/*'
     },
     /* fileSizeLimit :10, //验证文件总大小是否超出限制, 超出则不允许加入队列
     fileSingleSizeLimit :10,   //验证单个文件大小是否超出限制, 超出则不允许加入队列。 */
     duplicate :true //去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.

    });


  // 当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。
   uploader.on( 'beforeFileQueued', function( file ) {
    // 限制图片数量
    img_length = $("#thelist img").length;
    if (img_length >= 6) {
    layer.msg("图片最多上传6张");
    return false;
    }

   });

  // 当有文件添加进来的时候
   uploader.on( 'fileQueued', function( file ) {
   var $li = $(
      '<div id="' + file.id + '" class="file-item thumbnail col-sm-3" style="width:150px;margin-left:10px;">' +
       '<img>' +
       '<div class="info">' + file.name + '</div>' +
       '<span style="margin-left: 78%;cursor:pointer;" onclick="deleteFile(this)">删除</span>' +
      '</div>'
      ),
     $img = $li.find('img');
    // $list为容器jQuery实例
    $("#thelist").append( $li );
    // 创建缩略图
    // 如果为非图片文件,可以不用调用此方法。
    // thumbnailWidth x thumbnailHeight 为 100 x 100
    uploader.makeThumb( file, function( error, src ) {
     if ( error ) {
      $img.replaceWith('<span>不能预览</span>');
      return;
     }
     $img.attr( 'src', src );
    }, 150, 150 );

   });

  // 文件上传成功,给item添加成功class, 用样式标记上传成功。
   uploader.on( 'uploadSuccess', function( file ) {
    $( '#'+file.id ).addClass('upload-state-done');
    var $li = $( '#'+file.id ),
     $done = $li.find('div.upload-state-done');
    // 避免重复创建
    if ( !$done.length ) {
    $done = $('<div class=""></div>').appendTo( $li );
    }
    $done.html('<font color="blue">上传成功</font>');
   });

  // 文件上传失败,显示上传出错。
   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.html('<font color="red">上传失败</font>');
   });

   $("#ctlBtn").click(function(){
    uploader.upload();
   })

  })

  function deleteFile(obj) {
   $(obj).parent().remove();
  }
</script>

四、java代码

/**
  *
  * @Title: webuploadPic
  * @Description: webupload插件上传图片
  * @author: 大都督
  * @param files
  * @return
  * @throws IOException
  * @return: MessageInfo
  */
  @RequestMapping("/webupload_pic")
  @ResponseBody
  public MessageInfo webuploadPic(HttpServletRequest request) throws IOException {
   MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
   Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
   List<String> file_url_list = Lists.newArrayList();
   for (MultipartFile file:fileMap.values()) {
    file_url_list.add("/pictures/"+FileUtil.uploadFile(file, pictures_url));
   }
   return ResultGenerator.genSuccessResult(file_url_list);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript arguments 多参传值函数
Oct 24 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
js实现tab选项卡切换功能
Jan 13 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
javascript实现考勤日历功能
Nov 29 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
vue.js购物车添加商品组件的方法
Sep 17 Javascript
javascript如何实现create方法
Nov 04 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
解决vue+webpack项目接口跨域出现的问题
Aug 10 Javascript
javascript Number 与 Math对象的介绍
Nov 17 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 #Javascript
Vue 与 Vuex 的第一次接触遇到的坑
Aug 16 #Javascript
深入理解Vue 组件之间传值
Aug 16 #Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 #Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 #Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 #Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 #Javascript
You might like
ThinkPHP分页类使用详解
2014/03/05 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python 自动批量打开网页的示例
2019/02/21 Python
python解析yaml文件过程详解
2019/08/30 Python
Python 日期与时间转换的方法
2020/08/01 Python
python的launcher用法知识点总结
2020/08/07 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
学术会议主持词
2014/03/17 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
中学生打架检讨书
2014/10/13 职场文书
捐助感谢信
2015/01/22 职场文书