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 相关文章推荐
理解Javascript_10_对象模型
Oct 16 Javascript
为jQuery增加join方法的实现代码
Nov 28 Javascript
JS获取后台Cookies值的小例子
Mar 04 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
js a标签点击事件
Mar 30 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
详解vue-cli中配置sass
Jun 21 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
微信小程序-API接口安全详解
Jul 16 Javascript
JS实现使用POST方式发送请求
Aug 30 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 将excel导入mysql
2009/11/09 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
javascript一些实用技巧小结
2011/03/18 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
python如何在终端里面显示一张图片
2016/08/17 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
Python实现的特征提取操作示例
2018/12/03 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
python爬取抖音视频的实例分析
2021/01/19 Python
介绍一些UNIX常用简单命令
2014/11/11 面试题
实习单位接收函模板
2014/01/10 职场文书
物业管理工作方案
2014/05/10 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
给老婆的道歉信
2015/01/20 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技