Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift-“一个;Alamofire.upload“文件-&燃气轮机&引用;AF.upload";上传功能出现问题_Swift_Alamofire - Fatal编程技术网

Swift-“一个;Alamofire.upload“文件-&燃气轮机&引用;AF.upload";上传功能出现问题

Swift-“一个;Alamofire.upload“文件-&燃气轮机&引用;AF.upload";上传功能出现问题,swift,alamofire,Swift,Alamofire,我从旧版本升级了pod Alamofire 5.0 从迁移指南 “MultipartFormData的API已更改,创建和上载MultipartFormData的顶级上载方法已更新,以匹配其他请求API,因此不再需要处理多部分编码的结果。” 我已经编写了下面的函数,我无法在新版本中重新编写,有人能在这方面帮助我吗 注: 我想我需要更改“Alamofire.upload”->“AF.upload”,但这还不足以解决问题, func uploadPhoto(token:String, userID

我从旧版本升级了pod Alamofire 5.0

从迁移指南

“MultipartFormData的API已更改,创建和上载MultipartFormData的顶级上载方法已更新,以匹配其他请求API,因此不再需要处理多部分编码的结果。”

我已经编写了下面的函数,我无法在新版本中重新编写,有人能在这方面帮助我吗

注: 我想我需要更改“Alamofire.upload”->“AF.upload”,但这还不足以解决问题,

func uploadPhoto(token:String, userID: String, data: Data, dataUrl: URL) -> Observable<AnyObject?> {
        return Observable<AnyObject?>.create({ (observer) -> Disposable in
            print(userID);
            print(data);
            
            do {
                let urlRequest = try URLRequest(url: ResourcePath.Upload.path + "/\(userID)" , method: .post)
                Alamofire.upload(multipartFormData: { (multipartData) in
                    multipartData.append(data, withName: "Filedata", fileName: dataUrl.absoluteURL.lastPathComponent, mimeType: "image/jpeg")
                    //append(dataUrl, withName:  "Filedata",  fileName: dataUrl.absoluteString, mimeType: "image/png")
                    
                }, with: urlRequest, encodingCompletion: { (result) in
                    switch result {
                    case .success(let value, let t1, let t2) :
                        print(value)
                        value.responseData(completionHandler: { (dataResponse) in
                            switch (dataResponse.result) {
                            case .success(let value) :
                                print(value)
                                do {
                                    
                                   
                                    let jsonData = JSON(dictData)
                                    print("Upload photo response: \(jsonData)")
                                    observer.onNext(jsonData as AnyObject?)
                                    observer.onCompleted()
                                }
                                catch {
                                    print(error)
                                    observer.onError(error)
                                    return
                                }
                                break
                            case .failure(let error) :
                                print(error)
                                observer.onError(error)
                                break
                            }
                        })
                        
                        break
                    case .failure(let error) :
                        print(error)
                        observer.onError(error)
                        break
                    default:
                        break
                    }
                })
            } catch {
                print(error)
                observer.onError(error)
            }
            return Disposables.create {
                print("disposed")
            }
        })
    }
func上传照片(令牌:字符串,用户ID:字符串,数据:数据,数据URL:URL)->可观察{
返回可观察的。在中创建({(观察者)->一次性
打印(用户标识);
打印(数据);
做{
让urlRequest=尝试urlRequest(url:ResourcePath.Upload.path+“/\(userID)”,方法:.post)
上传(multipartFormData:{(multipartData)在
multipartData.append(数据,名称:“Filedata”,文件名:dataUrl.absoluteURL.lastPathComponent,mimeType:“image/jpeg”)
//追加(dataUrl,名称为:“Filedata”,文件名为:dataUrl.absoluteString,mimeType:“image/png”)
},带有:urlRequest,在中编码完成:{(结果)
切换结果{
成功案例(let值,let t1,let t2):
打印(值)
value.responseData(completionHandler:{(dataResponse)在
开关(dataResponse.result){
成功案例(let value):
打印(值)
做{
让jsonData=JSON(dictData)
打印(“上传照片响应:\(jsonData)”)
onNext(jsonData作为任何对象?)
observer.onCompleted()
}
抓住{
打印(错误)
observer.onError(错误)
返回
}
打破
案例。失败(let错误):
打印(错误)
observer.onError(错误)
打破
}
})
打破
案例。失败(let错误):
打印(错误)
observer.onError(错误)
打破
违约:
打破
}
})
}抓住{
打印(错误)
observer.onError(错误)
}
归还一次性物品。创建{
打印(“已处置”)
}
})
}

Alamofire 5在使用多部分表单编码时不再需要
编码完成
闭包。相反,您可以使用在其他用例中看到的正常响应处理。例如:

AF.upload(multipartFormData:{data in
//构建您的多部分表单。
}).responseDecodable(属于:SomeType.self){response in
//处理响应。
}

您希望有人重写您的代码而不亲自尝试吗?我认为这不是一个好主意。你试过AF.upload而不是Alamofire.upload吗?我不知道如何进行更改AF.upload不工作我收到一个错误“表达式类型‘UploadRequest’在没有更多上下文的情况下是不明确的”