配置參數(shù)
let data = UIImageJPEGRepresentation(_uploadImage,0.8)!
let params = ["biaot" : titleTextField.text!, "content" : textView.text, "type" : (adTypeBtn.titleLabel?.text)!] as [String : String]
upload(address: Common.gggl(), data: data, param: params)
上傳方法
func upload(address: String,data: Data, param: [String : String]) {
let model = XUserSaveSuccess.readUserInformation()
let cookie = (model?.session_name)! + "=" + (model?.sessid)!//[NSString stringWithFormat:@"%@=%@", sessionName, sessid];
let headers = ["Accept" : "application/json", "Content-Type" : "application/json", "Cookie" : cookie, "X-CSRF-Token" : model?.token!]
printLog(headers)
showHud(in: view, hint: nil, yOffset: 0)
Alamofire.upload(multipartFormData: { (multipartFormData) in
let imageName = String(describing: NSDate()) + ".png"
//multipartFormData.appendBodyPart(data: ,name: ,fileName: ,mimeType: )這里把圖片轉(zhuǎn)為二進(jìn)制,作為第一個(gè)參數(shù)
multipartFormData.append(data, withName: "uploadfile", fileName: imageName, mimeType: "image/jpeg")
// multipartFormData.append(URL(string: self.filePath!)!, withName: "image", fileName: "image.png", mimeType: "image/png")
//把剩下的兩個(gè)參數(shù)作為字典,利用 multipartFormData.appendBodyPart(data: name: )添加參數(shù),
//因?yàn)檫@個(gè)方法的第一個(gè)參數(shù)接收的是NSData類型,所以要利用 NSUTF8StringEncoding 把字符串轉(zhuǎn)為NSData
//遍歷字典
for (key, value) in param {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, usingThreshold: 60, to: address, method: HTTPMethod.post, headers: headers as? HTTPHeaders) {[weak self] (encodingResult) in
hideHud()
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON(completionHandler: { (response) in
if let myJson:[String: String] = response.result.value as? [String : String] {
printLog(myJson)
printLog(response.result)
printLog(response.description)
printLog(response.debugDescription)
printLog(response.request)
printLog(response.response)
if myJson["status"]! == "1" {
self?.navigationController?.popViewController(animated: true)
showHintInKeywindow(hint: "發(fā)布成功")
} else {
showHintInKeywindow(hint: "發(fā)布失敗")
}
}
})
case .failure(let error):
printLog(error)
showHintInKeywindow(hint: "請檢查您的網(wǎng)絡(luò)")
}
}
}