JS-SDK 七牛文件上传

通过javascript方式上传:

1.后端人员会写一个接口返回给客户端所需的token、domain等信息

2. 上传:

上传数据为base64编码格式的数据。

PS:

注意!!

JS-SDK 七牛文件上传_第1张图片

这个地方有空格!!!

上传的url!!!

整体:

上传返回的数据很简单,其中key与domain想组合就是图片上传之后的地址链接 domian/key JS-SDK 七牛文件上传_第2张图片

 

JS-SDK 七牛文件上传_第3张图片

具体代码:

 upload(dataUrl,file,type){
    this.loadPop = this.loadingCtrl.create({
      content: '加载中,请稍候',
    })
    this.loadPop.present();
    this.getQiniuToken().subscribe(data=>{
      console.log(data);
      dataUrl = dataUrl.split(",")[1];
      let url = `http://up-z2.qiniup.com/putb64/-1`;
      this.httpService.qiniuPostBase64(url,{"token":data.token,"dataUrl":dataUrl})
        .subscribe(imgKey=>{
          this.loadPop.dismiss();
            this.PositiveImg = `${data.domain}/${imgKey}`;
            this.PositiveName = file.name;
            this.PositiveImgId = imgKey;
        },err=>{
          this.loadPop.dismiss();
        })
    })
  }
/**
     * 七牛云post 请求
     * @param url 
     * @param parms 
     */
    qiniuPostBase64(url:string,parms:any={},toastShow:boolean = true,loading:boolean = false):Observable{
        return Observable.create(observer=>{
            this.http.post(url,parms.dataUrl,{
                headers:new HttpHeaders({
                'Content-type':'application/octet-stream',
                'Authorization':"UpToken " + parms.token
                })
            })
                .pipe(catchError(this.handleError))
                .subscribe((success:any)=>{
                    observer.next(success.key);
                    
                },err=>{
                    observer.error(err);
                    this.navtiveService.toast(err);
                })
        })
    }

 

 

 

你可能感兴趣的:(js,angular)