###前提・実現したいこと
閲覧してくださり、ありがとうございます。
swiftを2週間前に始めたプログラミング初心者です。
現在Alamofireを使い、iphoneで撮影した画像をサーバーに送信し、サーバーにて画像をpptxに変換。
そしてそのpptxを受け取り、app内のDocumentDirectoryに保存、その後pptxを表示するのが目的です。サーバー側は別の人が書いたので、詳しくはわかりませんが、聞いてみたところhttpresponseがswiftでできるならそれで取得できるよ。と言われました。
該当のソースコードで画像のuploadはできたのですが、変換されたpptxファイルを受け取ることができずにいます。
試したコードを用いてやってみましたが、request.responseData { response inのrequestでエラーが出ています。そもそもこのコードで取得できるのかがわかりません。
どうかご教授いただければと思います。
よろしくお願いします。
試したコード request.responseData { response in switch response.result { case.success(let data): self.photoImage = UIImage(data: data) case.failure: self.photoImage = response.resumeData } let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("sample.pptx") let file: FileHandle? = FileHandle(forWritingAtPath: "sample.pptx") if file != nil { // Write it to the file file?.write(data) // Close the file file?.closeFile() print("success") } else { print("Ooops! Something went wrong!") } } エラーメッセージ Ambiguous reference to member'request(_:method:parameters:encoding:headers:)'
###該当のソースコード
self.photoImage.startAnimating()
// 送信処理
//キー:フォーマット決め
let parameters = [
"hogehoge": "hogehoge.jpg"
]
print(parameters);
Alamofire.upload( // フォームデータ multipartFormData: { (multipartFormData) in for (key, value) in parameters { multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) } multipartFormData.append( //変換している UIImageJPEGRepresentation(self.photoImage.image!, 0.1)!, withName: "hogehoge", fileName: "hogehoge.jpg", mimeType: "image/jpeg" ) }, // 送信先 to: url, // ヘッダー headers: nil ) { (result) in switch result { // 成功の場合 case .success(let upload, _, _): // アップロード中 upload.uploadProgress(closure: { (progress) in //Print progress print("Print progress = (progress)") }) // アップロード完了 upload.responseData{ response in //print response.result print(response.request) // original URL request print(response.result) // result of response serialization switch(response.result) { case .success: print("succes") self.statusLabel.text = "Status: Success"
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode ver8.3.2
Swift3
Alamofire 4.4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。