详解vue 图片上传功能


Posted in Javascript onApril 30, 2019

这次做了vue页面的图片上传功能,不带裁剪功能的!

首先是html代码,在input框上添加change事件,如下:

<ul class="clearfix">
        <li v-if="imgs.length>0" v-for='(item ,index ) in imgs'>
          <img :src="item">
        </li>
        <li style="position:relative" v-if="imgs.length>=6 ? false : true">
          <img src="../../assets/img/addimg.png"><input class="upload" @change='add_img' type="file">
        </li>
</ul>

我这里做了图片数量的限制,最多6张。

然后是data数据,如下:

data () {
  return {
    imgs: [],
    imgData: {
      accept: 'image/gif, image/jpeg, image/png, image/jpg',
    }
  }
 }

imgs数组是放图片路径的,页面显示图片就是循环这个数组,imgData是判断图片类型的。

接下来是最重要的methods里面的方法,具体如下:

add_img(event){ 
      let reader =new FileReader();
      let img1=event.target.files[0];
      let type=img1.type;//文件的类型,判断是否是图片
      let size=img1.size;//文件的大小,判断图片的大小
      if(this.imgData.accept.indexOf(type) == -1){
        alert('请选择我们支持的图片格式!');
        return false;
      }
      if(size>3145728){
        alert('请选择3M以内的图片!');
        return false;
      }
      var uri = ''
      let form = new FormData(); 
      form.append('file',img1,img1.name);
      this.$http.post('/file/upload',form,{
        headers:{'Content-Type':'multipart/form-data'}
      }).then(response => {
        console.log(response.data)
        uri = response.data.url
        reader.readAsDataURL(img1);
        var that=this;
        reader.onloadend=function(){
          that.imgs.push(uri);
        }
      }).catch(error => {
        alert('上传图片出错!');
      })  
},

首先是获取你选择的图片,判断图片的类型和大小,然后以form表单的形式提交到后台,后台会返回给你这个图片的线上路径,你把后台返回的图片路径push到图片数组里面就可以了。

一般情况下还有删除图片的方法,就是把图片数组里的那个路径删除掉,把数据提交到后台,告诉后台删除了哪张图片就可以了。

以上所述是小编给大家介绍的vue 图片上传功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS date对象的减法处理实现代码
Dec 28 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
微信小程序 for 循环详解
Oct 09 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
BootStrap导航栏问题记录
Jul 31 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
vue的全局变量和全局拦截请求器的示例代码
Sep 13 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
vue移动端屏幕适配详解
Apr 30 #Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 #Javascript
微信小程序时间戳转日期的详解
Apr 30 #Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 #Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 #Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 #Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 #Javascript
You might like
php 缩略图实现函数代码
2011/06/23 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Pytorch之保存读取模型实例
2019/12/30 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
担保书怎么写
2014/04/01 职场文书
经营理念标语
2014/06/21 职场文书
协会周年庆活动方案
2014/08/26 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
争先创优个人总结
2015/03/04 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书