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 相关文章推荐
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 Javascript
Javascript中数组sort和reverse用法分析
Dec 30 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
原生javascript如何实现共享onload事件
Jul 03 Javascript
用javascript实现倒计时效果
Feb 09 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
php分页示例代码
2007/03/19 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
python实现excel读写数据
2021/03/02 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
python 装饰器的基本使用
2021/01/13 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
汽车检测与维修专业求职信
2013/10/30 职场文书
医药营销个人求职信
2014/04/12 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android