vue+element-ui+axios实现图片上传


Posted in Javascript onAugust 20, 2019

本文实例为大家分享了vue+element-ui+axios实现图片上传的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<!-- 引入vue -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- 引入axios -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href=https://unpkg.com/element-ui/lib/theme-chalk/index.css >
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
 <div id="app">
  <el-upload
   :action="posterUrl"
   :before-upload="beforeUpload"
   :http-request="(params)=>uploadImage(params)"
   :on-remove="(file, fileList)=>removeImage(file, fileList)"
   list-type="picture"
   accept="image/*"
  >
   <el-button size="small">选择图片</el-button>
  </el-upload>
 </div>
 
<script type="text/javascript">
 new Vue({
  el: '#app',
  data: {
   posterUrl: '',
   imgUrls: [],
   imgWidth: '320',
   imgHeight: '400',
  },
  methods: {
   beforeUpload(file) {
    let _this = this;
    let _checkSize = false; //是否需要指定上传图片的尺寸
    if(file.size > 1024*500) { //大小超过500kb
     _this.$message.error('图片太大,请重新选择');
     return false;
    }
    const isSize = new Promise((resolve, reject)=>{
     let _URL = window.URL || window.webkitURL;
     let img = new Image();
     img.onload = function () {
      if(!_checkSize || (_checkSize && img.width==_this.imgWidth && img.height==_this.imgHeight)) {
       resolve();
      }
      else {
       reject();
      }
     }
     img.src = _URL.createObjectURL(file);
    }).then(()=>{
     return file;
    }, ()=>{
     _this.$message.error('图片尺寸不对,请重新选择');
     return Promise.reject();
    });
    return isSize;
   },
 
   uploadImage(params) {
    console.log(params);
    let uploadData = new FormData();
    uploadData.append('file', params.file);
    let config = {
     headers: {
      'Content-Type': 'multipart/form-data'
     }
    };
    this.uploadPoster('homed'+new Date().getTime()+'/'+params.file.name, uploadData, config)
    .then(res=>{
     if(res.status == 200) {
      params.onSuccess();
      this.imgUrls.push({name:params.file.name, url:res.data.url});
      console.log(this.imgUrls);
     }
    }).catch(error=>{
     params.onError();
     this.$message.error('上传失败');
    });
   },
 
   removeImage(file, fileList) {
    console.log(fileList);
   },
 
   uploadPoster(url, obj, config) {
    let poster_upload_path = "http://xxxxxxxxxxxx/httpdocsup/poster/news/";
    return axios.post(poster_upload_path+url, obj, config);
   }
  }
 })
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
引入JS文件IE6报语法错误或缺少对象问题的解决方法
Jan 09 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 Javascript
javascript中this指向详解
Apr 23 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
VUE中使用Vue-resource完成交互
Jul 21 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
Vue.js搭建移动端购物车界面
Jun 28 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
Jan 24 Javascript
利用js实现简单开关灯代码
Nov 23 Javascript
vue element upload实现图片本地预览
Aug 20 #Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 #Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 #Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 #Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 #Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 #Javascript
node中使用log4js4.x版本记录日志的方法
Aug 20 #Javascript
You might like
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
PHP 文件类型判断代码
2009/03/13 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
vue项目中使用百度地图的方法
2018/06/08 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
python实现简单坦克大战
2020/03/27 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
Weblogc domain问题
2014/01/27 面试题
入党积极分子自我鉴定
2014/02/18 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
新党章的学习心得体会
2014/11/07 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书