详解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 相关文章推荐
5个javascript的数字格式化函数分享
Dec 07 Javascript
javaScript 利用闭包模拟对象的私有属性
Dec 29 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
JavaScript迭代器的含义及用法
Jun 21 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
JavaScript实现动态生成表格
Aug 02 Javascript
ant design 日期格式化的实现
Oct 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实现与ASP Banner组件相似的类
2006/10/09 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python try except finally资源回收的实现
2021/01/25 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
为什么使用接口?
2014/08/13 面试题
财务管理专业毕业生求职信范文
2013/09/21 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
教师个人自我评价范文
2014/04/13 职场文书
单位接收函范文
2015/01/30 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书