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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
JS动态调用方法名示例介绍
Dec 18 Javascript
jquery实现网页定位导航
Aug 23 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
React组件生命周期详解
Jul 03 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
redux处理异步action解决方案
Mar 22 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
javascript中layim之查找好友查找群组
Feb 06 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实现WEB动态网页静态
2006/10/09 PHP
phpfans留言版用到的install.php
2007/01/04 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python如何读写二进制数组数据
2020/08/01 Python
python 如何在测试中使用 Mock
2021/03/01 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS