Большие загрузки Base64 в iOS

Описание: Мне нужно отправить строку в кодировке base 64 в параметре HTTP POST, который представляет файл для загрузки.

Текущий метод: яиспользуя ASIFormDataRequest и кодируя мой файл в строку base64, примерно так:

NSData *data = [[NSFileManager defaultManager] contentsAtPath:@"my path here"];
NSString *base64Data = [data encodeBase64ForData];

Однако при загрузке больших файлов приложение не хватает памяти и умирает ужасной смертью!

Предложенное решение: Кто-нибудь теперь, как я мог бы, скажем, прочитать файл с диска, преобразовать его в строки base64 в чанах и присоединить преобразованную строку base64 к параметру в запросе HTTP?

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

Любой вклад будет принята с благодарностью!

Мой http-код запроса полностью: I '

NSURL *url = [NSURL URLWithString:requestProgressURLString];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:evidence.uri];
NSString *base64Data = [data encodeBase64ForData];
NSURL *fileURL = [[NSURL alloc] initWithString:evidence.uri];

request = [ASIFormDataRequest requestWithURL:url];

request.shouldAttemptPersistentConnection = false;
[request setShowAccurateProgress:YES];

[request setPostValue:accessToken forKey:@"AccessToken"];
[request setPostValue:[[fileURL path] lastPathComponent] forKey:@"Filename"];
[request setPostValue:evidence.name forKey:@"Title"];
[request setPostValue:base64Data forKey:@"FileData"]; //wants string value (base64 encoded)          
[request addRequestHeader:@"Content-Type" value:@"application/x-www-form-urlencoded"];
[request setTimeOutSeconds:60];
[request setUploadProgressDelegate:self];
[request setDownloadProgressDelegate:self];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];

Ответы на вопрос(2)

Ваш ответ на вопрос