详解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 相关文章推荐
javascript 运算数的求值顺序
Aug 23 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
js获取当前页面的url网址信息
Jun 12 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
Javascript中实现String.startsWith和endsWith方法
Jun 10 Javascript
浅谈Node.js中的定时器
Jun 18 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
Aug 10 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
js模拟实现烟花特效
Mar 10 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
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代码
2012/07/17 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
python中循环语句while用法实例
2015/05/16 Python
Python多进程机制实例详解
2015/07/02 Python
Python构建图像分类识别器的方法
2019/01/12 Python
wxpython绘制音频效果
2019/11/18 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
Python中求对数方法总结
2020/03/10 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
为什么称python为胶水语言
2020/06/16 Python
应用化学专业职业生涯规划书
2013/12/31 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL