8
A
回答
0
我使用以下代碼上傳圖片。對於給定的文件類型,您應該可以相應地調整multipartEncoding
塊。
let json: [String : Any] = ["key", "value"]
let image = UIImage(named: "Something")!
guard let imageData = UIImagePNGRepresentation(image) else {
// We couldn't convert the image into data :(
}
let multipartEncoding: (MultipartFormData) -> Void = { multipartFormData in
multipartFormData.append(imageData, withName: "image", fileName: "image.png", mimeType: "image/png")
}
let request = Router.uploadPicture(parameters: json) // This is just a plain POST
sessionManager.upload(
multipartFormData: multipartEncoding,
with: request,
encodingCompletion: { (encodingResult) in
switch encodingResult {
case .success(let request, _, _):
request.validate().responseJSON(completionHandler: { (dataResponse) in
if let error = dataResponse.result.error {
// Network request failed :(
}
// SUCCESS!
})
case .failure(_):
// Couldn't encode the image :(
}
})
這是假設你的Router
看起來像這樣。
enum Router: URLRequestConvertible {
case uploadPicture(parameters: Parameters)
static var baseUrl = "https://website.com/"
var method: HTTPMethod {
switch self {
case .uploadPicture(_):
return .post
}
}
var path: String {
switch self {
case .uploadPicture(_):
return "api/upload-picture/"
}
}
// MARK: - URLRequestConvertible
func asURLRequest() throws -> URLRequest {
let url = try Router.baseUrl.asURL().appendingPathComponent(path)
var urlRequest = try URLRequest(url: url, method: method)
var encodedUrlRequest: URLRequest?
switch self {
case .uploadPicture(let parameters):
encodedUrlRequest = try? JSONEncoding.default.encode(urlRequest, with: parameters)
}
return encodedUrlRequest ?? urlRequest
}
}
相關問題
- 1. Alamofire路由器
- 2. 使用Alamofire無法通過服務器上傳音頻文件
- 3. MultipartFormData上傳使用Alamofire
- 4. 聲明枚舉路由器Alamofire swift 3.0
- 5. Ext.Net文件上傳和ASP.net路由
- 6. Alamofire:取消(暫停)文件上傳
- 7. Alamofire 4文件上傳參數問題
- 8. 使用Carrierwave上傳文件時沒有路由匹配錯誤
- 9. 無法使用ExpressJS路由器映射路由文件
- 10. 上傳與Alamofire
- 11. 如何使用Swift和Alamofire上傳任意數量的文件?
- 12. 使用Alamofire向文件上傳添加進度
- 13. 使用Alamofire上傳本地OS X IPA文件和XML
- 14. 如何使用alamofire上傳多個文件並顯示進度?
- 15. AngularJS與Angular-ui路由器和jQuery文件上傳
- 16. Django文件上傳使用路徑
- 17. 路由使用路由器鏈路
- 18. Alamofire通過.POST上傳到PHP。上傳的文件在哪裏?
- 19. 使用Alamofire從UIImagePickerController上傳圖像
- 20. Alamofire上傳進度
- 21. 使用jquery文件上傳器的多個文件上傳
- 22. 使用jquery文件上傳器和PHP上傳多個文件
- 23. 默認使用Zend路由器路由
- 24. 使用ui路由器的AngularJS路由
- 25. 上傳文件,即使Alamofire並搭配修身PHP
- 26. Ember.js - 在控制器/路由器鏈上傳播事件
- 27. 如何使用反應路由器在特定路線上打開文件
- 28. 骨幹通用路由器與單獨的路由文件?
- 29. 在Heroku上使用Angular2路由器
- 30. 在EmberJS路由器上使用JSONP?