Alamofire v1.3.1 時点
AlamofireにMultipartFormDataが実装されたが、同時にパラメータを渡す方法がわからなかった。
もっと簡潔なやり方があるのかもしれないが、値をNSDataに変換してmultipartFormData.appendBodyPart(data:name:)で追加してやれば、とりあえずパラメータを追加することはできるようだ。
例
let fileURL = NSBundle.mainBundle().URLForResource("Default", withExtension: "png")!
Alamofire.upload(
.POST,
URLString: "http://httpbin.org/post",
multipartFormData: { (multipartFormData) in
// file upload
multipartFormData.appendBodyPart(fileURL: fileURL, name: "uploadFile")
// stringVal=hoge
if let data = "hoge".dataUsingEncoding(NSUTF8StringEncoding) {
multipartFormData.appendBodyPart(data: data, name: "stringVal")
}
// intVal=10
if let data = String(10).dataUsingEncoding(NSUTF8StringEncoding) {
multipartFormData.appendBodyPart(data: data, name: "intVal")
}
},
encodingCompletion: { (encodingResult) in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { request, response, JSON, error in
println(JSON)
}
case .Failure(let encodingError):
println(encodingError)
}
})