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字符串处理实例代码
Aug 05 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
jQuery实现鼠标经过事件的延时处理效果
Aug 20 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
Apr 01 Javascript
js选项卡的制作方法
Jan 23 Javascript
原生JS实现幻灯片
Feb 22 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
JS实现躲避粒子小游戏
Jun 18 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
PHP修改session_id示例代码
2014/01/08 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP文件操作方法汇总
2015/07/01 PHP
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
Three.js基础部分学习
2017/01/08 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
js实现随机抽奖
2020/03/19 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
详解Python中break语句的用法
2015/05/14 Python
Python程序退出方式小结
2017/12/09 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python nmap实现端口扫描器教程
2020/05/28 Python
python机器学习实现决策树
2019/11/11 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
《两个铁球同时着地》教学反思
2014/02/13 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
学历公证书范本
2014/04/09 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书