文档地址:https://developer.qiniu.com/kodo/sdk/1283/javascript#2

npm引入

npm install qiniu-js

例子:

var observable = qiniu.upload(file, key, token, putExtra, config)
var subscription = observable.subscribe(observer) // 上传开始
// or
var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
subscription.unsubscribe() // 上传取消

参数说明:

file:上传的文件(files[0])

key:自定义的路径

token:后台接口返回

config: object

var config = {
useCdnDomain: true,
region: qiniu.region.z2
};
var putExtra = {
fname: "",
params: {},
mimeType: [] || null
};

其它的具体参数可取值可以参考文档

贴个具体上传的代码

selectPhoto(event){//上传身份证明文档(doc、docx) 照片
var self=this;
self.photoWordFormat=0;//重置一下
if(event.target.files.length>0){
var dianIndex=event.target.files[0].name.lastIndexOf('.'),
fileName,
file=event.target.files[0];
if(dianIndex>-1){
fileName=event.target.files[0].name.slice(dianIndex);
if(fileName==".png"||fileName==".jpg"||fileName==".gif"){
if(file.size>5120000){
tools.alert('文件太大了, 不允许超过5M~');
return;
}
self.photoWorld=event.target.files[0].name;
self.photoWordFormat=1;//格式正确
var timestamp = (new Date()).valueOf();
var params={
file:file,//要上传的文件
key:"paper_file/"+timestamp+self.photoWorld,//自定义文件地址
token:self.token,
config:{
useCdnDomain: true,
region:undefined
},
putExtra:{
fname:self.photoWorld,
params: {},
mimeType: [] || null
},
}
self.upLoadQiniu(params);
}else{
tools.alert('请选择png,jpg,gif格式的文件,并且文件不能为空');
return;
}
}
}
},
upLoadQiniu(params){//上传至七牛云
var self=this;
self.loading= layer.load(1, {//请求未成功时出现loading页 ,3代表一中效果
shade: [0.1,'#fff'] //0.1透明度的白色背景
});
// 上传回调
function next(res){
// console.log(res);
}
function error(err){
console.log(err);
}
function complete(res){
var url="http://xxxxxx.cn/"+res.key;
self.postObj.pic=url;
layer.close(self.loading);//关闭loading效果
}
var observable = qiniu.upload(params.file, params.key, params.token, params.putExtra, params.config);
var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
// subscription.unsubscribe() // 上传取消
},

进一步在tools中封装成一个公共方法

/**
*
* @param {*} file 上传的文件
* @param {*} token 上传需要的token
*/
function qiniuUpLoadFun(file,token){//七牛上传方法
return new Promise(function(resolve){
var timestamp = (new Date()).valueOf();
var params={
file:file,//要上传的文件
key:"paper_file/"+timestamp+file.name,//自定义文件地址
token:token,
config:{
useCdnDomain: true,
region:undefined
},
putExtra:{
fname:file.name,
params: {},
mimeType: [] || null
},
}
resolve(params);
}).then(function(params){
return upLoadQiniu(params);
})
}
function upLoadQiniu(params){//上传至七牛云
return new Promise(function(resolve){
var loading= layer.load(1, {//请求未成功时出现loading页 ,3代表一种效果
shade: [0.1,'#fff'] //0.1透明度的白色背景
});
// 上传回调
function next(res){
// console.log(res);
console.log("上传中");
}
function error(err){
console.log(err);
}
function complete(res){
var url="http://xxxxxx.cn/"+res.key;
layer.close(loading);//关闭loading效果
resolve(url);
}
var observable = qiniu.upload(params.file, params.key, params.token, params.putExtra, params.config);
var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
// subscription.unsubscribe() // 上传取消
})
}

调用七牛云存储文件,返回url的更多相关文章

  1. 第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件中的内容,字符串拼接+在上一行

    package main import ( "html/template" "io" "io/ioutil" "log" ...

  2. 使用qshell备份七牛云存储文件

    qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具.我们可以利用它来将七牛云上存储的文件备份到本地. 它提供Mac OSX, Linux, Windows ...

  3. Android客户端实现七牛云存储文件上传

    1.简单文件上传  上传模型如下. 1.1获得Token 不管是简单文件上传,还是分片上传.断点续传 都需要首先访问服务器,以获得上传凭证信息Token..用于测试时,可以用本地模拟Token信息(有 ...

  4. thinkphp5.1调用七牛云SDK上传文件

    thinkphp5.0 class Upload { public static function image(){ if(empty($_FILES['file']['tmp_name'])){ e ...

  5. flask 保存文件到 七牛云

    上篇文章队长讲述了如何把前端上传的文件保存到本地项目目录 本篇 讲述一下把前端上传的文件保存到 第三方存储(七牛云) 七牛云相关步骤思路: 首先 进去七牛云官网,注册并实名认证来获取一个七牛云账号和存 ...

  6. java(SSM)上传文件到七牛云(对象存储)

    项目中会用到大量的图片和小视频,为了分担服务器压力,将文件都放在七牛云.这里的思路很简单, 就是移动端.pc端把文件上传到服务器,服务器做一个临时缓存,保存必要的信息到数据库后, 将文件上传到七牛云, ...

  7. 在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载

    这是我花了很多天的时间才得以真正实现的一组需求. 文章后面有完整Demo的GitHub链接. 一. 需求描述 1. 应用是基于ThinkPHP5开发的: 2. 服务器环境是LNMP,PHP版本是7.2 ...

  8. 七牛云存储Python SDK使用教程 - 上传策略详解

    文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k  ...

  9. django之集成七牛云对象存储

    Python3 + Django2.0 集成 "七牛云" 对象存储 (SDK文档地址:http://developer.qiniu.com/kodo/api/3928/error- ...

随机推荐

  1. element-ui组件dialog遇到form

    Vue.js似乎成了一种潮流. UI框架element-ui也跟着成了一种潮流,不过得承认,至少我个人还是非常认可的,element-ui做的是真不错. 用到element-ui,那么在dialog中 ...

  2. 怎样通过html标签名获取元素节点集合

    方法1. 使用document.querySelectorAll(); 方法2. 使用document.getElementsByTagName(); document.querySelectorAl ...

  3. c# 图文添加文字斜水印 优化

    之前一篇给图片加水印的功能,加出来水印的图片位置有一点问题,并且如果图片分辨率有变动的话,水印会有层次不齐的问题. 目前只能优化到增加一条居中显示的斜水印,在不同分辨率不同大小的图片中,都能保证文字水 ...

  4. JSON在JS中的应用

    一. JSON在JS中的应用: 首先解释下JSON对象与普通js对象字面量定义时格式的区别: Js对象字面量定义格式: var person = { name:"Wede", ag ...

  5. 2.JVM、JRE、JDK之间的关系

    诠释一. JDK(java development kit) JDK是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库. JRE(java run ...

  6. scala的泛型浅析

    1. scala泛型浅析 package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界 ...

  7. ELECTRON 打包

    安装electron-packager cnpm install electron-packager -g 配置package.json "scripts": { "st ...

  8. Java秒杀实战 (七)安全优化

    转自:https://blog.csdn.net/qq_41305266/article/details/81174782 一.隐藏秒杀地址 思路:秒杀开始前,先去请求接口获取秒杀地址 1.接口改造, ...

  9. 网络编程基础之TCP学习(二)编程案例

    TCP网络编程流程如下: 实现功能:服务器端与客户端成功通讯后返回get! 服务器端程序 #include <netdb.h> #include <sys/socket.h> ...

  10. 前端基础(一):HTML内容

    HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...