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 相关文章推荐
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
jQuery实现的淡入淡出二级菜单效果代码
Sep 15 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
javascript实现循环广告条效果
Dec 12 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
JavaScript布尔运算符原理使用解析
May 06 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
May 11 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
yii分页组件用法实例分析
2015/12/28 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
彪马法国官网:PUMA法国
2019/12/15 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
行政办公员自我评价分享
2013/12/14 职场文书
优乐美广告词
2014/03/14 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书