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 相关文章推荐
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
javascript实现左右控制无缝滚动
Dec 31 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
jQuery树插件zTree使用方法详解
May 02 jQuery
详谈表单重复提交的三种情况及解决方法
Aug 16 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
VsCode里的Vue模板的实现
Aug 12 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP 数组入门教程小结
2009/05/20 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php中关于换行的实例写法
2019/09/26 PHP
纯文字版返回顶端的js代码
2013/08/01 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
理解JS绑定事件
2016/01/19 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
jQuery中map函数的两种方式
2017/04/07 jQuery
Vue编写多地区选择组件
2017/08/21 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
js实现列表按字母排序
2020/08/11 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
六行python代码的爱心曲线详解
2019/05/17 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
行政助理岗位职责
2013/11/10 职场文书
信息技术培训感言
2014/03/06 职场文书
四群教育工作实施方案
2014/03/26 职场文书
服务明星事迹材料
2014/12/29 职场文书
质检员工作总结2015
2015/04/25 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python