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 相关文章推荐
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
Jul 01 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
jQuery实现给input绑定回车事件的方法
Feb 09 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
Vue常见面试题整理【值得收藏】
Sep 20 Javascript
微信小程序实现图片上传
May 23 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
JavaScript实现省市区三级联动
Feb 13 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP文件下载类
2006/12/06 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
谈谈Python中的while循环语句
2019/03/10 Python
python实现电子书翻页小程序
2019/07/23 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
python实现简单银行管理系统
2019/10/25 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
keras slice layer 层实现方式
2020/06/11 Python
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers