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 相关文章推荐
js 图片轮播(5张图片)
Dec 30 Javascript
jQuery-ui中自动完成实现方法
Jun 10 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 Javascript
防止文件缓存的js代码
Jan 10 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
jquery序列化方法实例分析
Jun 10 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
Bootstrap开关(switch)控件学习笔记分享
May 30 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
150行代码带你实现微信小程序中的数据侦听
May 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
php实现的css文件背景图片下载器代码
2014/11/11 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
jQuery中:contains选择器用法实例
2014/12/30 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
python将文本转换成图片输出的方法
2015/04/28 Python
python获取中文字符串长度的方法
2018/11/14 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
三关爱志愿服务活动方案
2014/08/17 职场文书
教师年度考核个人总结
2015/02/12 职场文书
聘任书格式及范文
2015/09/21 职场文书
创业计划书介绍
2019/04/24 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
python中 .npy文件的读写操作实例
2022/04/14 Python
小程序自定义轮播图圆点组件
2022/06/25 Javascript