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继承 笔记
Jul 13 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
浅谈JavaScript数据类型
Mar 03 Javascript
基于jquery实现百度新闻导航菜单滑动动画
Mar 15 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
理解JavaScript中的对象
Aug 25 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
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
PHP的几个常用加密函数
2016/02/03 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
详解python中的 is 操作符
2017/12/26 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
初三学习决心书
2014/03/11 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
村容村貌整治方案
2014/05/21 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
整脏治乱工作简报
2015/07/21 职场文书