美文网首页小斑swiftiOS-swift
Swift使用七牛上传图片的一些坑

Swift使用七牛上传图片的一些坑

作者: smalldu | 来源:发表于2015-11-04 21:37 被阅读3791次
    七牛

    七牛只有Objective-C的库没有Swift的库 , 所以需要桥接。桥接的方法不用多少了,网上一大堆教程

    七牛oc的SDK地址:http://developer.qiniu.com/docs/v6/sdk/objc-sdk.html

    可以使用cocoaPods直接引入 pod "Qiniu", "~> 7.0"

    因为七牛有使用AFNetworking 和 HanekeSwift 库,所引入的时候要引入这两个

    一般微信、微博SDK桥接,我们直接简单的这样就行了

    #import "WXApiObject.h"
    #import "WXApi.h"
    #import "WeiboSDK.h"
    

    但是七牛你这样导入 就会报错 , 一直说找不到文件。

    你需要这样

    #import "AFNetworking/AFNetworking.h"
    #import "Qiniu/QiniuSDK.h"
    #import "HappyDNS/HappyDNS.h"
    

    现在好了,不报错了。满心欢喜的开始使用SDK, 我想上传本地相册的照片 , 用的PhotoKit拿到的是PHAsset 对象 , 看了下官方的例子 :

    #import <QiniuSDK.h>
    ... 
    NSString token = @"从服务端SDK获取"; 
    QNUploadManager *upManager = [[QNUploadManager alloc] init];
     NSData *data = [@"Hello, World!" dataUsingEncoding : NSUTF8StringEncoding]; 
    [upManager putData:data key:@"hello" token:token complete: 
    ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) 
    { 
      NSLog(@"%@", info); 
      NSLog(@"%@", resp);
     } option:nil];
    ...
    

    一看就是传入NSData类型的数据,传入一个key ,继续很happy的将它转成swift的格式,info.statusCode 为200的时候是成功 。 然后根据自己的PHAsset拿到UIImage对象 , 将UIImage对象再转成NSData类型的对象。传入后返回statusCode 200很开心成功了。

    然而 ,从服务器down下来 ,图片格式.81 .223之类的,什么鬼不是成功了吗。。。。。

    好吧,服务器返回的连接是乱的错得。 去看七牛的API ,原来有各种put的方法 putFile , putPHAsset 。。。。等等 。尼玛。还是太年轻呀。。

    最后用了putPHAsset返回的连接还是错的,最后看api说key可以为nil,这样的话七牛随机生成,我传入了nil后,成功了。

    let upManager = QNUploadManager()
    upManager.putPHAsset(item, key: nil , token: token , complete: { (info, key, resp) -> Void in
                                        
    if (info.statusCode == 200 && resp != nil){
             //上传完毕
             if i == sum{
             //刷新数据
             
             }
             
             }else{
             //失败 
             
             }
             
    }, option: nil)
    

    token是从自己服务器上取嗒。问题终于解决了,关键是百度居然没搜到这样问题。还是我太年轻。。。记录下吧。

    相关文章

      网友评论

      本文标题:Swift使用七牛上传图片的一些坑

      本文链接:https://www.haomeiwen.com/subject/fozqhttx.html