2016-11-21 6 views
-1

、UIImageを取得し、マルチパート画像の文字列に変換し、テキストファイルに書き込む:私は次の操作を実行する必要があるのiOS

  1. バイト配列にUIImageに変換します。
  2. マルチパートを使用して文字列を取得し、その文字列をテキストファイルに書き込みます。
  3. 残りのサービス のパラメータ(要求)とともにこのテキストファイルをサーバーにアップロードする必要があるAPIを呼び出します。

私は試みましたが、テキストファイルに書き込まれるべきマルチパート文字列を取得できません。

私は初心者です。誰かがマルチパートイメージ文字列を取得するアプローチを提案できれば、私は非常に感謝しています。

ありがとうございます!

+1

てみPOST要求。 – Vinodh

+0

試したコードを追加してください。ただし、動作しませんでした。 –

+0

http://stackoverflow.com/questions/24250475/post-multipart-form-data-with-objective-c/24252378#24252378 –

答えて

0

使用以下このファイルへdataを書くことができます:私はそうならば、App Transport Security Settingsを設定してください、finder -> goto finderでwritedファイルをチェックし、あなたの画像URLがHTTP接頭辞である場合に注意を払って、コンソールの書き込み経路のprintパスを持っていますあなたのInfo.plistobjective-c

swift
NSURLSession *session = [NSURLSession sharedSession]; 
NSURL *url = [NSURL URLWithString:@"https://sf-sponsor.b0.upaiyun.com/45751d8fcd71e4a16c218e0daa265704.png"]; // if http:please set `App Transport Security Settings` in your Info.plist 

NSURLSessionTask *task = [session dataTaskWithURL:url 
           completionHandler:^(NSData *data, NSURLResponse *response, NSError* error) { 


            NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]); 

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true); 
            NSString *documentsDirectory = paths[0]; 
            NSLog(@"%@", documentsDirectory); 
            NSFileManager * fm = [NSFileManager defaultManager]; 

            BOOL ifsucess = [fm createFileAtPath:[NSString stringWithFormat:@"%@/file.data", documentsDirectory] contents:data attributes:nil]; 

            if (ifsucess) { 

             // success 
            }else { 

             // fail 
            } 



           }]; 

[task resume]; 

:マルチパートで

/* swift */ 

    let path:String = "https://sf-sponsor.b0.upaiyun.com/45751d8fcd71e4a16c218e0daa265704.png" // if http:please set `App Transport Security Settings` in your Info.plist 
    let url:NSURL = NSURL.init(string: path)! 
    let request = URLRequest.init(url: url as URL) 

    let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in 

     let paths:NSArray = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) as NSArray 
     let documentsDirectory = paths.object(at: 0) 
     print(documentsDirectory) 
     //let appFile = "\(documentsDirectory)/MyFile.text" // 

     if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { 

      let path = dir.appendingPathComponent("file.data") 

      do { 
       try data?.write(to: path, options: NSData.WritingOptions.atomic) 
      } 
      catch {/* error handling here */} 

     } 

    } 

    task.resume() 
+0

リモートURLからイメージをダウンロードし、文書ディレクトリに.dataファイルとして保存していますか? OPのために明確に異なる要件が必要な理由と、OPが複数のポスト要求を代わりに使用すべき理由について、その根拠を追加してください。 – NSNoob

関連する問題