swift 基于AFNetWorking 图片上传方法

之前一直用的oc图片上传!由于新项目的需要使用了swift语言,既然使用那就少不了图片上传操作。下面是简单图片上传的方法希望能帮到大家:

首先做一个网络请求类的单例
//MallrroNurseDataManager 网络请求类的类名
static let shareManager:MallrroNurseDataManager = {

    let baseUrl = NSURL(string:"")!
    let manager = MallrroNurseDataManager(baseURL:baseUrl as URL, sessionConfiguration:URLSessionConfiguration.default)
    manager.responseSerializer.acceptableContentTypes = NSSet(objects:"application/json","text/json","text/javascript","text/plain","text/html") as? Set<String>
    return manager
}()

/**
post请求上传图片

 - parameter urlString:  请求的url
 - parameter parameters: 请求的参数
 - parameter success:    请求成功回调
 - parameter failure:    请求失败回调
 */
class func uploadImg(view:Any,urlString:String,parameters:NSMutableDictionary?,img:UIImage, success:((_ responseObject:AnyObject?) -> Void)?,failure:((_ error:NSError) -> Void)?) -> Void {

    if !TestNetWorkClass .connectedToNetWork() {

        JKAlert.alertText("请检查网络")
        return
    }
     let urlstr ="url" //上传后台服务器的url

    let mallrroParameter =  NSMutableDictionary() //类型的接口需要的参数

    let sessionConfiguration = URLSessionConfiguration.default
    let manager =  AFHTTPSessionManager(sessionConfiguration: sessionConfiguration)
    manager.responseSerializer.acceptableContentTypes = NSSet(arrayLiteral: "application/json", "text/json", "text/javascript","text/html") as? Set<String>

    manager.post(urlstr, parameters: mallrroParameter, constructingBodyWith: { (formData) in
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyyMMddHHmmss"
        formatter.timeZone = NSTimeZone.system
        let fileName:String = "\(formatter.string(from: NSDate.init() as Date)).jpg"
        let imageData = UIImageJPEGRepresentation(img, 0.05)
        formData.appendPart(withFileData: imageData!, name: "file", fileName: fileName, mimeType: "image/jpg")
    }, progress: { (progress) in

    }, success: { (task, response) in

        //如果response不为空时
        if response != nil {

            success!(response as AnyObject?)
        }
    }) { (task, error) in

        failure!(error  as AnyObject? as! NSError)
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值