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 相关文章推荐
在标题栏显示新消息提示,很多公司项目中用到这个方法
Nov 04 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
微信小程序实现星星评价效果
Nov 02 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
JavaScript图片旋转效果实现方法详解
Jun 28 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
jquery简单体验
2007/01/10 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
文明餐桌活动方案
2014/02/11 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
2014和解协议书范文
2014/09/15 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
施工员岗位职责
2015/02/10 职场文书
单位政审意见范文
2015/06/04 职场文书
家庭经济困难证明
2015/06/23 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript