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 css float属性的特殊写法
Nov 13 Javascript
JS与框架页的操作代码
Jan 17 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
jQuery实现手机版页面翻页效果的简单实例
Oct 05 Javascript
javascript中递归的两种写法
Jan 17 Javascript
vue父组件中获取子组件中的数据(实例讲解)
Sep 27 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
微信小程序文章详情功能完整实例
Jun 03 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 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
德劲1103二次变频版的打磨
2021/03/02 无线电
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
django如何通过类视图使用装饰器
2019/07/24 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
汽修专业学生自我鉴定
2013/11/16 职场文书
党员批评与自我批评
2014/02/12 职场文书
倡议书格式
2014/04/14 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
2015年教师节感言
2015/08/03 职场文书
百日宴上的祝酒词
2015/08/10 职场文书