[Swift]Alamofire网络请求使用put方式上传图片到腾讯云
pod 'PromiseKit', '~> 6.2.1' #能提供强大的 iOS 开发异步功能pod 'SwiftyJSON', '4.0.0' #SwiftyJSON使得在Swift中处理JSON数据变得很容易。pod 'Alamofire-SwiftyJSON', '~> 3.0.0' # 一个扩展,使序列化Alamofire的响应与swiftjson容易。url: https:/
·
pod 'PromiseKit', '~> 6.2.1' #能提供强大的 iOS 开发异步功能
pod 'Alamofire-SwiftyJSON', '~> 3.0.0' # 一个扩展,使序列化Alamofire的响应与swiftjson容易。
url: https://cps-api.inficloud.com.cn/api/self_center/uploadUrl
result: Optional({
"code" : 1,
"data" : {
"url" : "https:\/\/cps-cos-dev-1304837101.cos.ap-guangzhou.myqcloud.com\/cps\/1628073407\/IMG_1628073407.jpg",
"method" : "put",
"sign" : "?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDDLH0Wt41kKjvteFhwzpSr2yhCUbWErq3%26q-sign-time%3D1628073407%3B1628074007%26q-key-time%3D1628073407%3B1628074007%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D9490d26a10fa00ee4af97377c1053b650a59288a"
},
"msg" : null
})
/// 上传图片到腾讯云
func txUploadImageAction(_ img: UIImage, _ url: String, _ sign:String) {
UploadApi.txUploadImage(img,url,sign).done {[weak self] (url) in
self?.headerIconView.image = img
}.ensure {
}.catch { (error) in
}
}
import Foundation
import PromiseKit
import SwiftyJSON
import Alamofire
import Alamofire_SwiftyJSON
struct UploadApi {
static func txUploadImage(_ image: UIImage, _ url: String, _ sign:String) -> Promise<String> {
let reURL = url + sign
return Promise<String> { result in
do {
let newurl = try reURL.asURL()
if let imageData = UIImageJPEGRepresentation(image, 0.5) {
var uploadHeaders:HTTPHeaders = [:]
uploadHeaders["Content-Type"] = "image/jpeg; charset=utf-8"
let stream = InputStream(data: imageData)
//let length = UInt64(imageData.count)
upload(stream, to: newurl , method: .put,headers: uploadHeaders)
result.fulfill(url)
} else {
result.reject(RequestError(code: -1, message: "上传失败"))
}
} catch {
result.reject(RequestError(code: -1, message: "上传失败"))
}
}
}
}
Android put方式上传图片
更多推荐
所有评论(0)