使用 multi-part 和 Alamofire 上传图像
Uploading an image using multi-part and Alamofire
我正在尝试将图像上传到我的后端服务器。创建了一条新记录,但从未上传任何图像:
func uploadDish(dish:Dish, completionHandler: ((AnyObject?, ErrorType?) -> Void)){
let urlString = "http://backend.com/v1/dish"
SwiftSpinner.show("Uploading Dish...")
Alamofire.upload(
.POST,
urlString,
multipartFormData: { multipartFormData in
if let image = self.image {
if let imageData : NSData = UIImageJPEGRepresentation(image, 0.1){
multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "testesttest.jpg", mimeType: "image/jpeg")
}
}
multipartFormData.appendBodyPart(data: "foo".dataUsingEncoding(NSUTF8StringEncoding)!, name :"name")
multipartFormData.appendBodyPart(data: "bar".dataUsingEncoding(NSUTF8StringEncoding)!, name :"address")
multipartFormData.appendBodyPart(data: "1".dataUsingEncoding(NSUTF8StringEncoding)!, name :"priceRange")
multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lat")
multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lng")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
print(upload.debugDescription)
break
case .Failure(let encodingError):
print(encodingError)
break
}
}
)
SwiftSpinner.hide()
}
在 Postman 中有效:
这其实是正确的,发现错误在后端。
以上方法就是你post图片
我正在尝试将图像上传到我的后端服务器。创建了一条新记录,但从未上传任何图像:
func uploadDish(dish:Dish, completionHandler: ((AnyObject?, ErrorType?) -> Void)){
let urlString = "http://backend.com/v1/dish"
SwiftSpinner.show("Uploading Dish...")
Alamofire.upload(
.POST,
urlString,
multipartFormData: { multipartFormData in
if let image = self.image {
if let imageData : NSData = UIImageJPEGRepresentation(image, 0.1){
multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "testesttest.jpg", mimeType: "image/jpeg")
}
}
multipartFormData.appendBodyPart(data: "foo".dataUsingEncoding(NSUTF8StringEncoding)!, name :"name")
multipartFormData.appendBodyPart(data: "bar".dataUsingEncoding(NSUTF8StringEncoding)!, name :"address")
multipartFormData.appendBodyPart(data: "1".dataUsingEncoding(NSUTF8StringEncoding)!, name :"priceRange")
multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lat")
multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lng")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
print(upload.debugDescription)
break
case .Failure(let encodingError):
print(encodingError)
break
}
}
)
SwiftSpinner.hide()
}
在 Postman 中有效:
这其实是正确的,发现错误在后端。
以上方法就是你post图片