var _uploadTemplate = '<div>'+
'<input type="file" name="file" v-on:change="change" id="file" accept="img.png" style="display: none;">' +
'</div>'; Vue.component('vue-upload', {
template: _uploadTemplate,
props: ["accept","backfun", "height", "width"],
data: function () {
return {
model: {
code: 0,
message: "",
fileUrl: ""
}
}
},
methods: {
change: function () {
var that= this;
var file = document.getElementById("file"); // 文件流
var fileData=file.files[0];
var fileType=file.value.toLowerCase().split('.');//以“.”分隔上传文件字符串
//展示数据用
//限制图片格式
if(fileType[fileType.length-1]!='jpg'&&fileType[fileType.length-1]!='png'&&fileType[fileType.length-1]!='jpeg'){
document.getElementById("file").value = "";
that.model.code =1;
that.model.message="图片格式不正确!";
that.backfun(that.model);
return;
}
if (fileData.size > 5242880) {
document.getElementById("file").value = "";
that.model.code = 2;
that.model.message="图片文件太大!";
that.backfun(that.model);
return;
}
var reader = new FileReader();
reader.readAsDataURL(fileData,"UTF-8");
reader.onload = function (evt) {
var fileString = evt.target.result;
that.model.code = 0;
that.model.fileUrl =fileString;
that.backfun(that.model);
}
}
},
}); var _loadingTemplate ='<transition enter-active-class="animated fadeIn" leave-active-class="animated fadeOut"><div style="display: block;" v-if="show"></transition>'; Vue.component('coinbig-loading', {
template: _loadingTemplate,
props: ["show"],
});

html    样式就不写了 没什么东西

调用组件

 <div class="middle-image">
<div class="middle-imageson">
<img class="middle-imgas" :src="imgSrcTx||'/url'"/> //上传后会传到这。有一个默认的img
</div>
<div class="middle-imagesona" v-on:click="upload()">修改</div>
<vue-upload :ext="'png,jpeg,jpg'":backfun="uploadBack" :width="64" :height="64"></vue-upload>
</div>

调用js

            //头像上传图片
upload:function(){
$("#file").trigger("click");
},
//图片SHANGCHUAN
uploadBack:function(data){
var that = this;
if(data.code!=0){
return;
}
that.imgSrcTx = data.fileUrl;
that.SubmitsendImg();
},
SubmitsendImg:function () {
var that = this;
Comm.runebws("url",{avatar:that.imgSrcTx},"post",function (result) {
if(result.code==0){ }else{
that.msgFun(result.msg);
return
}
})
}

vue 封装组件上传img的更多相关文章

  1. vue-upload 封装组件-上传组件

    我后端的,刚接触vue个星期,根据需求写了个上传控件,很灵活的.没有看element el-upload源码,样式用的element的.感觉vue确实好用. 先看样子: <!-- 单文件上传组件 ...

  2. VUE -- 用组件上传文件和用xmlrequest上传

    xmlrequest: sendForm(str, types) { var form = this.$refs.ipas_form; var oOutput = document.querySele ...

  3. vue 阿里云上传组件

    vue 阿里云上传组件 Vue.js上传图片到阿里云OSS存储 测试项目git地址 本测试项目启动方法 示例链接 组件配置项 实践解释 本文主要介绍如何 在vue项目中使用web 直传方式上传阿里云o ...

  4. 微信小程序简单封装图片上传组件

    微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...

  5. vue中el-upload上传多图片且携带参数,批量而不是一张一张的解决方案

    现在前端基本不是vue技术栈就是react技术栈. vue技术栈最常用的就是element-ui的ui框架了. 在项目中,我们经常会碰到这种需求:批量上传文件 element-ui 确实也为我们提供了 ...

  6. Vue的组件及传参

    目录 Vue的组件及传参 Vue组件的概念 根组件 子组件(局部组件) 父组件向子组件传值 子组件向父组件传值 Vue的组件及传参 Vue组件的概念 我们首先要知道组件的概念,实际上每一个组件都是一个 ...

  7. 使用commons-fileUpload组件上传文件

    在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.com ...

  8. asp 文件上传(ASPUpload组件上传)

    要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload   要实现该功能,就要利用一些特制的文件上传组件 ...

  9. EasyUI 关于IE使用window组件上传文件

    有时候IE会对使用window组件上传文件(第二次)不生效,解决方案是: 将该window每次打开的时候,使用: $('#adUploadWindow').window('refresh', 'pan ...

随机推荐

  1. ISO 8 自适应cell

    原文网址: http://www.cocoachina.com/ios/20141218/10687.html 在使用 table view 的时侯经常会遇到这样的需求:table view 的 ce ...

  2. java基础第一篇

    1.JDK:Java Development kit 能对Java程序编译,运行 包含JRE JRE:Java Runtime Environment 能对Java程序运行 包含JVM和一些核心类库 ...

  3. Java 分析工具汇总

    http://blog.csdn.net/fenglibing/article/details/6411999 jps  jps -mlvV jmap jmap -heap <pid>   ...

  4. Android近场通信---NFC基础(四)(转)

    转自http://blog.csdn.net/think_soft/article/details/8184539 从Intent中获取信息 如果因为NFC的Intent而启动一个Activity,那 ...

  5. rn-splash-screen 启动页 安卓

    1. 进入项目npm install --save rn-splash-screen 2.react-native link rn-splash-screen 3.在项目android/app/src ...

  6. fetch请求数据,后台将cookie一起返回时

    请求时,添加以上标记的属性,就可以拿到后台给的cookie,并返回给后台.比如登录后才能有的操作,这样就需要返回给后台cookie从而判断是否登录

  7. tagName

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. SQLachemy基础

    SQLAchemy SQLAchemy是python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作, 简言之便是:将对象转换成SQL,然后使用数据API执行S ...

  9. G-华华对月月的忠诚

    链接:https://ac.nowcoder.com/acm/contest/392/G 题意: 月月要参加学校的信息学集训,晚上不能陪华华聊天了.不过为了防止华华去和别的小姐姐聊天,浪费时间影响学习 ...

  10. Technocup 2017 - Elimination Round 1 (Unofficially Open for Everyone, Rated for Div. 2) A

    Vasily has a number a, which he wants to turn into a number b. For this purpose, he can do two types ...