vue上传阿里云图片组件

上传组件:<template>    <div class="upLoat">        <a href="javascript:;" class="file">上传图片            <input type="file" :accept="typeArr" @change="upload($event)">        </a>    </div></template><script>    import {Toast} from ‘mint-ui‘;    export default {        props     : [‘data‘, ‘typeArr‘, ‘size‘],        data(){            return {                client  : ‘‘,                fileSize: 500000            }        },        created(){            if (this.size) {                this.fileSize = this.size;            }            this.client = new OSS.Wrapper({                region         : process.env.region,                secure         : true,                accessKeyId    : process.env.accessKeyId,                /*这两者到阿里云控制台获得*/                accessKeySecret: process.env.accessKeySecret,                bucket         : process.env.bucket /*装图片的桶名*/            });        }, methods: {            /**上传图片**/            upload(event){                var self = this;                var file = event.target.files[0];

var type    = file.name.split(‘.‘)[1];                var storeAs = this.getUuid() + ‘.‘ + type;                var boolean = true;                if (file.size > this.fileSize) {                    Toast(‘亲,图片不能超过!‘ + this.fileSize / 1000 + ‘kb‘);                    return false;                }                if (this.typeArr && this.typeArr.indexOf(type) > 0) {                    boolean = false;                }                if (boolean) {                    Toast(‘上传图片格式不支持!请选择‘ + this.typeArr);                    return false;                }                this.client.multipartUpload(storeAs, file).then(function (result) {

self.data.url = result.res.requestUrls[0].split(‘?‘)[0];

}).catch(function (err) {

console.log(err);                });

},            getUuid() {                var len   = 32; //32长度                var radix = 16; //16进制                var chars = ‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz‘.split(‘‘);                var uuid  = [],                    i;                radix     = radix || chars.length;                if (len) {                    for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];                } else {                    var r;                    uuid[8] = uuid[13] = uuid[18] = uuid[23] = ‘-‘;                    uuid[14] = ‘4‘;                    for (i = 0; i < 36; i++) {                        if (!uuid[i]) {                            r       = 0 | Math.random() * 16;                            uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];                        }                    }                }                return uuid.join(‘‘);

}        }    }</script><style scoped lang="less">

.file {        position: relative;        left: .26rem;        top: .2rem;        display: inline-block;        background: #32d582;        border: 1px solid #99D3F5;        border-radius: 4px;        padding: 4px 12px;        overflow: hidden;        color: white;        text-decoration: none;        text-indent: 0;        line-height: 20px;    }

.file input {        position: absolute;        font-size: 100px;        right: 0;        top: 0;        opacity: 0;    }

</style>

父级组件:

<template>    <div id="endorsementfrom">        <upLoad :data="item" typeArr="image/png,image/jpg,image/gif,image/jpeg"></upLoad>    </div></template><script>    import upLoad from ‘upLoad‘    export default {        props     : [‘imgs‘],        components: {            upLoad        },        methods   : {}    }</script><style scoped lang="less">    #endorsementfrom {}</style>
时间: 2024-11-09 03:49:27

vue上传阿里云图片组件的相关文章

小程序---&gt;小程序图片上传阿里OSS使用方法

小程序图片上传阿里OSS使用方法 首先看下参考文档 ( http://blog.csdn.net/qq_38125123/article/details/73870667) 这里只将一些运用过程中遇到的问题及解决办法: 1.cryptojs,sha1js,hmacjs,base64js在哪下载及使用方法: 文件可以在阿里oss实例文档中找到. 在运用过程中如果是通过require引入的,会找不到引入的方法,原因是这些js文档没有模块导出,可以在原文件里找到其顶部全局对象,exports出来即可.

VUE2.0+VUE-Router做一个图片上传预览的组件

之前发了一篇关于自己看待前端组件化的文章,但是由于学习和实践的业务逻辑差异,所以自己练习的一些demo逻辑比较简单,打算用vue重构现在公司做的项目,所以在一些小的功能页面上使用vue来做的,现在写的这个是项目中用户反馈功能而来的,收获还是挺多的. 收获:dom操作=>数据操作       router的使用       组件的使用,具体总结放在尾部. 功能:1.上传图片 2.显示缩略图 3.可以删除 4.可以重新选择文件 先上成品图(主要抽取图片这块),自己在家主要做的功能,样式就不计较了.

Thumbnails 压缩图片上传阿里云服务器所遇到的问题

InputStream inputStream = null; inputStream = frontFile.getInputStream();BufferedImage bufImg = Thumbnails.of(inputStream).scale(0.2f).asBufferedImage();ByteArrayOutputStream os = new ByteArrayOutputStream();String frontFileName = frontFile.getOrigin

图片或文件上传阿里云服务

//图片上传到阿里云 [AcceptVerbs(HttpVerbs.Post)] public JsonResult Upload(HttpPostedFileBase fileData, string tupianming) { if (fileData != null) { try { // 文件上传后的保存路径 var extName = Path.GetExtension(fileData.FileName); if (string.IsNullOrWhiteSpace(extName)

java文件上传下载 使用SmartUpload组件实现

使用SmartUpload组件实现(下载jsmartcom_zh_CN.jar) 2017-11-07 1.在WebRoot创建以下文件夹,css存放样式文件(css文件直接拷贝进去),images存放图片(图片也拷贝进去),js存放js文件(拷贝),jsp存放我们的jsp文件 2.创建jsp文件 01.jsp 3.编写jsp 1 <%@ page language="java" import="java.util.*" pageEncoding="

Vue上传文件:ElementUI中的upload实现

一.上传文件实现 两种实现方式: 1.直接action <el-upload class="upload-file" drag :action="doUpload" :data="pppss"> <i class="el-icon-upload"></i> <div class="el-upload__text">将文件拖到此处,或<em>点击上传

vue 上传文件 并以表格形式显示在页面上

先上代码 <label for="file" class="btn">多文件上传</label> <input type="file" style="display:none;" id="file" multiple @change="file()"> 这是上传文件的按钮 <table> <tr> <th class=&q

自定义镜像上传阿里云

alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Lin

alpine制作jdk、jre镜像、自定义镜像上传阿里云

alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Lin