七牛云调用JS-SDK上传文件

本文介绍了如何在React应用中利用七牛云的JS-SDK进行文件上传。首先通过npm安装qiniu-js库,然后引入并调用上传方法,订阅上传状态。需要一个获取上传凭证的后端接口。上传过程中处理next、error、complete事件。同时展示了限制单文件上传的实现及上传进度的展示。
摘要由CSDN通过智能技术生成

七牛云调用JS-SDK 上传文件

  • 业务需要,使用七牛云存储文件,开始打算在后端实现上传功能,看了官方SDK,相比较前端来处理相对方便些,以下是具体实现。

引入

用的是React框架,使用 NPM 安装:

npm install qiniu-js

import * as qiniu from ‘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() // 上传取消

下面是我项目的具体过程:
首先需要一个获取上传token的接口:

/**
* 获取上传凭证
*/
public GetUpTokenOutput getUpToken() {
GetUpTokenOutput outputObj = new GetUpTokenOutput();
Auth auth = Auth.create(cdnConfig.getQiniuAccessKey(), cdnConfig.getQiniuSecretKey());
String uptoken = auth.uploadToken(cdnConfig.getBucket());
log.info(“获取上传凭证qiniuAccessToken=” + uptoken);
outputObj.setUpToken(uptoken);
return outputObj;
}

upload触发的方法:

  handleUpload = () => {
   
    const {
    fileList } = this.state;
    let fileKey = this.state.uploadFileDetail.fileKey;
    fileList.forEach(file => {
   
      console.info(file);
    });
    this.setState({
   
      uploading: true,
    });
    if (common.functionCommon.isEmpty(fileKey)) {
   
      fileKey = fileList[0].name;
    }
    this.state.uploadFileDetail.sourceFileKey = fileList[0].name;
    this.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用七牛云的 JavaScript SDK上传文件的方法如下: 1. 引入 SDK: ```html <script src="https://cdn.staticfile.org/plupload/2.3.6/plupload.full.min.js"></script> <script src="https://cdn.staticfile.org/qiniu-js/1.0.24-beta/qiniu.min.js"></script> ``` 2. 配置七牛云参数: ```javascript var config = { useCdnDomain: true, // 是否使用 CDN 加速域名 region: qiniu.region.z2, // 上传域名区域 uptokenURL: '/api/uptoken', // 获取上传凭证的后端接口 domain: 'http://yourdomain.com/', // 域名,即访问上传的文件时使用的地址 container: 'upload-container', // 上传控件的容器 ID maxFileSize: 10 * 1024 * 1024, // 最大文件大小,单位为字节 chunkSize: 4 * 1024 * 1024, // 分块上传时每块的大小,单位为字节 autoStart: true // 是否自动开始上传 }; ``` 3. 创建上传实例: ```javascript var uploader = Qiniu.uploader({ runtimes: 'html5,flash,html4', browse_button: 'select-file', // 选择文件按钮的 ID ...config, // 将七牛云参数传入 init: { // 上传状态改变时的回调函数 'StateChanged': function(up) { if (up.state === plupload.STARTED) { console.log('上传中'); } else if (up.state === plupload.STOPPED) { console.log('上传停止'); } }, // 文件添加到上传队列时的回调函数 'FilesAdded': function(up, files) { // 遍历文件列表,处理每个文件 plupload.each(files, function(file) { console.log('文件名:' + file.name + ', 文件大小:' + plupload.formatSize(file.size)); }); }, // 上传成功时的回调函数 'FileUploaded': function(up, file, info) { var res = JSON.parse(info.response); // 解析上传成功后返回的数据 console.log('文件上传成功,访问地址为:' + config.domain + res.key); }, // 上传出错时的回调函数 'Error': function(up, err, errTip) { console.log('上传出错:' + errTip); } } }); ``` 4. 开始上传: ```javascript uploader.start(); ``` 以上就是使用七牛云的 JavaScript SDK 上传文件的方法。需要注意的是,上传文件需要先获取上传凭证,可以通过调用七牛云的 API 接口来获取,也可以使用 SDK 中提供的 `uptokenURL` 参数来指定后端接口获取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值