文档地址: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. Docker 容器学习笔记

    Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影 ...

  2. 数值分析-Legendre正交多项式 实现函数逼近

    数值分析-Legendre正交多项式 实现函数逼近 2016年12月18日 21:27:54 冰三点水 阅读数 4057   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请 ...

  3. React 工程的 VS Code 插件及配置

    原味地址:https://juejin.im/post/5b5fce12e51d45162679e032 最近使用 VS Code 来开发 React,本文记录一些使用的 VS Code 插件以及离线 ...

  4. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了   原文链接:https://www.cnblogs.com/yilezhu/p/9985451.ht ...

  5. 【C++】如何提高Cache的命中率,示例

    参考链接     https://stackoverflow.com/questions/16699247/what-is-a-cache-friendly-code 只是堆积:缓存不友好与缓存友好代 ...

  6. Advanced Installer 开始-程序那里增加,快捷方式、卸载软件、官方网站

    .     这个是效果.

  7. Java API 之 SPI机制

    SPI SPI全称是service provider interface,是Java定义的一套服务发现机制,如图: 调用方只需要面向接口,接口的实现由第三方自己去实现,服务启动的时候会自动去发现该服务 ...

  8. Python打

    .智能识别图片物体.这步是智能垃圾分类的魔法核心.原理是人工智能会根据打上标签的海量图片来识别新的图片所归属的分类标签.好奇的读者可能会问,我没学过深度学习啊?我也不会训练模型,怎么办? python ...

  9. 使用Eclipse开发Java应用并部署到SAP云平台SCP上去

    1. 首先根据这个链接配置好Eclipse. 确保SAP Cloud Platform Tools for Java正确安装. 确保neo SDK的路径配置正确: 我使用的是下图这个SDK:neo-j ...

  10. Python学习记录7-继承

    面向对象的三大特性 封装 继承 多态 封装 封装就是对对象的成员进行访问限制 封装的三个级别: 公开,public 受保护的,protected 私有的,private public,private, ...