2012-01-21 2 views
0

У меня проблемы с загрузкой файла на сервер через POSTКодирование Issue apending NSData на сообщение

Я строю тело запроса на загрузку файла HTML и вставляя данные:

------WebKitFormBoundaryMAsmIFCr12izlsoH 
Content-Disposition: form-data; name="token" 

%@ 
------WebKitFormBoundaryMAsmIFCr12izlsoH 
Content-Disposition: form-data; name="userfile"; filename="%@" 
Content-Type: AES256/encrypted 

%@ 
------WebKitFormBoundaryMAsmIFCr12izlsoH-- 
Content-Disposition: form-data; name="submit" 

Datei absenden 
------WebKitFormBoundaryMAsmIFCr12izlsoH-- 

Но для вставки строка данных fia с форматом, она должна быть строкой. Поэтому я выделяю initWithData: кодирование данных NSASCIIStringEncoding приводит к тому, что данные не могут отображаться в UTF8. Остальная часть запроса находится в UTF8, поэтому впоследствии, если нужны данныеUsingEncoding: NSUTF8StringEncoding. Это нарушает данные. Там есть некоторые байты в неправильном месте и так далее. Поэтому я попытался по-другому, я выплюнул html на две части и сделал сэндвич. html, data, html К сожалению, теперь запрос выглядит так, как второй html является частью файла, поэтому файл снова разбивается. Вы знаете лучший метод? Заранее спасибо, Jannes

ответ

0

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

Вам было бы лучше преобразовать различные части заголовка в NSData экземпляры, а затем объединить их с данными, которые вы хотите отправить.

+0

Спасибо за ваш ответ. Ансер: вам нужна линия между вашими данными и остальной частью html. Например: NSString * break = @ "\ n"; NSData * breakData = [break dataUsingEncoding: NSUTF8StringEncoding]; [postbody appendData: fileData]; [postbody appendData: breakData]; – Elefantosque

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