0
我一直在嘗試使用下面的上傳方式上傳到我的本地服務器的視頻:在multipartFormData
塊Alamofire上傳multipartFormData忽略參數
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(url, withName: "video", fileName: "video.mp4", mimeType: "video/mp4")
},
with: Router.postVideo(parameters: params),
encodingCompletion: { encodingResult in
switch encodingResult
{
case .success(let upload, _, _):
upload.uploadProgress { progress in
print(progress.fractionCompleted)
}
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
})
而是附加參數,我利用以下`路由器」。
enum APIRouter: URLRequestConvertible
{
static let baseURLString = "https://base/api/"
case postVideo(parameters: Parameters)
var method: HTTPMethod
{
switch self
{
case .postVideo:
return .post
...
}
}
var parameters: Parameters?
{
switch self
{
case .postVideo(let parameters):
return parameters
....
}
}
var path: String
{
switch self
{
case .postVideo:
return 「videos"
....
}
}
public func asURLRequest() throws -> URLRequest
{
// Create url request
let url = try APIRouter.baseURLString.asURL()
var urlRequest = URLRequest(url: url.appendingPathComponent(path))
// Set request method
urlRequest.httpMethod = method.rawValue
// Set parameters
if let params = self.parameters
{
urlRequest = try URLEncoding.default.encode(urlRequest, with: params)
}
return urlRequest
}
}
但是,當我將視頻上傳到服務器時,參數丟失。任何想法爲什麼?