详解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 相关文章推荐
Code:loadScript( )加载js的功能函数
Feb 02 Javascript
javascript AutoScroller 函数类
May 29 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
JS实现文档加载完成后执行代码
Jul 09 Javascript
AngularJS学习第一篇 AngularJS基础知识
Feb 13 Javascript
js a标签点击事件
Mar 30 Javascript
vue2组件之select2调用的示例代码
Oct 12 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
微信小程序 wxParse插件显示视频问题
Sep 27 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邮件管理器源码
2016/01/06 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
python对json的相关操作实例详解
2017/01/04 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
Python二维码生成识别实例详解
2019/07/16 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
银行柜员应聘推荐信范文
2013/11/24 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
如何用PHP实现多线程编程
2021/05/26 PHP
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记