vue实现图片上传到后台


Posted in Javascript onJune 29, 2020

本文实例为大家分享了vue实现图片上传到后台的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="jquery-1.11.3.min.js"></script>
 <style>
  .upload {
  margin: 30px 40px 0;
  width: 122px;
  height: 122px;
  padding-bottom: 40px;
  position: relative;
  float: left;
  }
  .upload .btn {
  position: absolute;
  left: 20px;
  bottom: 0;
  width: 80px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  color: #Fff;
  border-radius: 5px;
  background: #ff6c00;
  }
  .upload .btn .file {
  display: inline-block;
  position: absolute;
  width: 80px;
  height: 30px;
  left: 0;
  top: 0;
  opacity: 0;
  }
  .upload .btn .add{
   position: absolute;
   left: 0;
   top: 0;
   width: 80px;
   height: 30px;
   text-align: center;
  }
  .upload .imgs {
  position: absolute;
  left: 0;
  top: 0;
  width: 100px;
  height: 100px;
  border: 1px solid #ccc;
  padding: 10px;
  }
  .upload .imgs img {
  width: 100px;
  height: 100px;
  border: 1px solid #f1f1f1;
  }
  .upload .imgs .look {
  position: absolute;
  left: 10px;
  top: 10px;
  width: 100px;
  height: 100px;
  line-height: 100px;
  text-align: center;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  }
 </style>
</head>
<body>
 <!-- 模态框 -->
 <div class="madel-img"></div>
 
 <div class="upload_wrap clearfix">
  <div class="upload upload1 fl">
   <div class="btn">
   <span class="add">上传文件</span>
   <input type="file" class="file" multiple>
   <input type="hidden" class="imgUrl">
   </div>
   <div class="imgs">
   <img src="shenfenzheng.jpg" alt="">
   <div class="look">图片示范</div>
   </div>
  </div>
 </div>
 
 <script>
 ;(function($){
 
  /* 上传图片 */
  $.fn.upload = function(id){
   this.id = id;
   this.img = this.id.find($(".imgs img"));
   this.img_src = this.id.find($(".imgs img")).attr("src");
   this.file = this.id.find($(".file"));
   this.look = this.id.find($(".look"));
   this.imgUrl = this.id.find($(".imgUrl"));
   var that = this;
 
   this.file.on("change",function(){
 
   var files = this.files;//获得上传的所有图片
   var reader = new FileReader();//读取本地图片并显示
 
   var name = files[0].name;
    var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
    if(fileName !="jpg" && fileName !="jpeg" && fileName !="png" && fileName !="bmp"){
     layer.msg("图片格式不正确!");
     that.img.attr("src",that.img_src)
     return;
    }
    var fileSize = files[0].size;
    var size = fileSize / 1024;
    if(size>10000){
     layer.msg("图片不能大于10M");
     return;
    }else if(size <= 0){
     layer.msg("图片不能小于0M");
     return;
    }
 
   reader.readAsDataURL(files[0]);//读取第一张图片的地址
   //数据读取完成后改变src地址
   reader.onload = function(){
    that.look.css({"display":"none"});
    var image = new Image();//本地缓存一张图片
    var imgCur_src = this.result;//获取正在上传的图片
    that.img.attr("src",imgCur_src);//吧刚开始的图片替换成上传的图片
   }
 
    var fd = new FormData();
    fd.append("pic", files[0]);
    $.ajax({
     type: "POST",
     contentType: false, //必须false才会避开jQuery对 formdata 的默认处理 , XMLHttpRequest会对 formdata 进行正确的处理
     processData: false, //必须false才会自动加上正确的Content-Type
     url: uploadUrl,
     data: fd,
     async: false,
     beforeSend: function (request) {
      request.setRequestHeader("Authorization", localStorage.token);
      request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
     },
     success: function (msg) {
      console.log(msg)
      if (msg.code == "100") {
       imgUrl.val(msg.data);
      }
     },
     error: function (msg) {
      console.log(msg);
     }
    });
   })
  }
 
  $(".upload1").upload($(".upload1"));
 })(jQuery)
</script>
</body>
</html>

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现人才网站职位选择功能的方法
Aug 14 Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 Javascript
jQuery实现TAB选项卡切换特效简单演示
Mar 04 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
vue实现点击展开点击收起效果
Apr 27 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
JavaScript实现HSL拾色器
May 21 Javascript
JS判断数组四种实现方法详解
Jun 29 #Javascript
vue实现整屏滚动切换
Jun 29 #Javascript
vue实现页面切换滑动效果
Jun 29 #Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 #Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 #Javascript
vue实现列表滚动的过渡动画
Jun 29 #Javascript
element跨分页操作选择详解
Jun 29 #Javascript
You might like
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
php中mysql连接方式PDO使用详解
2015/02/25 PHP
php实现socket推送技术的示例
2017/12/20 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
python版学生管理系统
2018/01/10 Python
使用tensorflow实现线性回归
2018/09/08 Python
django序列化serializers过程解析
2019/12/14 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
经销商会议欢迎词
2014/01/11 职场文书
小学生综合素质评语
2014/04/23 职场文书
统计专业自荐书
2014/07/06 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
信访稳定工作汇报
2014/10/27 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang