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 相关文章推荐
jcrop基本参数一览
Jul 16 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
Jun 05 Javascript
详解AngularJS ng-class样式切换
Jun 27 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
微信小程序支付PHP代码
Aug 23 Javascript
js事件on动态绑定数据,绑定多个事件的方法
Sep 15 Javascript
详解如何在Angular优雅编写HTTP请求
Dec 05 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php文件下载处理方法分析
2015/04/22 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python 中random模块的常用方法总结
2017/07/08 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python机器学习之神经网络(三)
2017/12/20 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Python urllib2运行过程原理解析
2020/06/04 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
秘书行业自我鉴定范文
2013/12/30 职场文书
关于环保的建议书400字
2014/03/12 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
社区党建工作方案
2014/06/10 职场文书
语文教研活动总结
2014/07/02 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
学习党章的体会
2014/11/07 职场文书
大学生读书笔记范文
2015/07/01 职场文书
公司业务员管理制度
2015/08/05 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript