将图像上传到服务器w/Alamofire Swift 3
问题描述:
我试图用alamofire将tableview中的图像上传到我的服务器。我使用PHP作为我的后端,并已完成PHP部分。问题是我不知道如何在我的alamofire代码中实现图像。任何帮助,将不胜感激。将图像上传到服务器w/Alamofire Swift 3
//Submit Button///////////////////////
@IBAction func submit(_ sender: UIButton) {
let cell = sender.superview?.superview as! RegisterCell
var variable01 = cell.variable01.text!
var variable02 = cell.variable02.text!
let registerUrl = "http://www.website.com/register.php?var01=\(variable01)&var02=\(variable02)"
let urlEncodedString = registerUrl.replacingOccurrences(of: " ", with: "%20")
self.parseJSON(url: urlEncodedString)
}
//Parse JSON//////////////////////////
func parseJSON(url : String){
Alamofire.request(url).responseJSON(completionHandler: {
response in
self.parseData(JSONData: response.data!)
})}
func parseData(JSONData : Data){
do {
var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONObject
if let signJSON = readableJSON["Register"] as? [JSONObject] {
for i in 0..<signJSON.count {
let JSON = signJSON[i]
let parseStatus = JSON["sendStatus"] as! String
let parseMessage = JSON["sendMessage"] as! String
if parseStatus == "Error" {print("Error"); self.Alert("\(parseMessage)") }
else if parseStatus == "Success" {
performSegue(withIdentifier: "Register01=>Register02", sender: self)}
}}}
catch {print(error)}
}
答
请试试这个
func commonNetworkCallToUploadImage(imageData : Data,withName : String,fileName : String,header :[String:String],url:String,method:HTTPMethod,parameters : [String:Any]?,completionHandler:@escaping (JSON?,String?)->Void) {
Alamofire.upload(multipartFormData: { (formData) in
formData.append(imageData, withName: withName, fileName: fileName, mimeType: "image/jpg")
for (key,value) in parameters!{
let components = String(describing: value)
let data = (components).data(using:.utf8)
formData.append(data!, withName: key)
}
},to: url ,method:method,
headers:header,
encodingCompletion:{ (encodingResult) in
switch encodingResult {
case .success(let upload,_ , _):
upload.responseJSON { response in
if let data = response.result.value {
let json = JSON(data)
completionHandler(json,nil)
}
}
case .failure(let encodingError):
completionHandler(nil,encodingError.localizedDescription)
}
})
}
的可能的复制[上传图像到使用Alamofire服务器(https://stackoverflow.com/questions/40519829/upload-image-to-server-using- alamofire) – nathan
[Alamofire 4 with parameters]可能的重复](https://stackoverflow.com/questions/39809867/alamofire-4-upload-with-parameters) – Jaydeep
我知道这是一个可能的重复。我正在寻找的是,我将如何实现照片上传在这个确切的代码。谢谢。大多数教程使用案例,而不是如果那样,我不真正理解这些。并且还提供url链接中的参数。 –