详解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 相关文章推荐
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 Javascript
jQuery Masonry瀑布流插件使用详解
Nov 17 Javascript
JS插件overlib用法实例详解
Dec 26 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
基于gulp合并压缩Seajs模块的方式说明
Jun 14 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 Javascript
Vue 设置axios请求格式为form-data的操作步骤
Oct 29 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
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
Python多线程编程简单介绍
2015/04/13 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python爬豆瓣电影实例
2018/02/23 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
文明家庭先进事迹材
2014/01/27 职场文书
家长评语和期望
2014/02/10 职场文书
门前三包责任书
2014/04/15 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技