Alamorefire(Swift 3):对成员'上传(......')的模糊引用

时间:2016-10-19 08:07:31

标签: ios file-upload swift3 alamofire

我对Alamorefire使用Swift 3,但收到错误:Ambiguous reference to member 'upload。 这是我的代码:

Alamofire.upload(.post, url,
        multipartFormData: { multipartFormData in

            // import parameters
            for i in 0 ..< params.count {
                for (key, value) in params[i] {
                    multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
                }
            }

            // import image to request
            multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.jpg", mimeType: "image/jpeg")
        }, // you can customise Threshold if you wish. This is the alamofire's default value
        encodingMemoryThreshold: SessionManager.multipartFormDataEncodingMemoryThreshold,
        encodingCompletion: { encodingResult in
            switch encodingResult {
            case .Success(let upload, _, _):
                upload.responseJSON { response in

                    debugPrint(response.result)

                }
            case .Failure(let encodingError):
                print(encodingError)

            }
    })

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:8)

尝试以下代码

Alamofire.upload(multipartFormData: { (multipartFormData) in
    multipartFormData.append(UIImageJPEGRepresentation(self.photoImageView.image!, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg")
    for (key, value) in parameters {
        multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
    }
    }, to:"http://server1/upload_img.php")
{ (result) in
    switch result {
    case .success(let upload, _, _):

        upload.uploadProgress(closure: { (Progress) in
            print("Upload Progress: \(Progress.fractionCompleted)")
        })

        upload.responseJSON { response in
            //self.delegate?.showSuccessAlert()
            print(response.request)  // original URL request
            print(response.response) // URL response
            print(response.data)     // server data
            print(response.result)   // result of response serialization
            //                        self.showSuccesAlert()
            //self.removeImage("frame", fileExtension: "txt")
            if let JSON = response.result.value {
                print("JSON: \(JSON)")
            }
        }

    case .failure(let encodingError):
        //self.delegate?.showFailAlert()
        print(encodingError)
    }

}