2016-11-21 3 views
-1

мне нужно сделать следующее:Получить UIImage, преобразовать его в строку многочастного изображения и записать его в текстовый файл IOS

  1. Преобразование UIImage в массив байтов;
  2. Получить строку с использованием multipart и записать эту строку в текстовый файл;
  3. Call API, где этот текстовый файл вместе с остальной услугой параметры (запрос) должны быть загружены на сервер.

Я попытался, но я не могу получить многостраничную строку, которая должна быть записана в текстовый файл.

Я новичок, если кто-нибудь может предложить мне подход к получению многостраничной строки изображения, я был бы очень благодарен.

Заранее благодарен!

+1

Try сообщение запрос с многоголосным. – Vinodh

+0

Пожалуйста, добавьте код, который вы пробовали, но это не сработало. –

+0

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

ответ

0

Используйте это ниже, может написать data в файл: У меня есть print путь пути записи в консоли, проверьте writed файл по finder -> goto finder, и обратить внимание на, если ваш URL изображения HTTP префикс, если да, то пожалуйста, установите App Transport Security Settings в вашем Info.plist.

В objective-c:

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:

/* 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-файл в документах dir? Пожалуйста, добавьте свое обоснование относительно того, почему он должен работать для ОП, явно отличающихся друг от друга, и почему OP не должен использовать многостраничный почтовый запрос? – NSNoob

Смежные вопросы