Возможно, вы захотите использовать ASIHTTPRequest , так как он создаст тело для отправки данных формы для вас с гораздо меньшими хлопотами и может передавать тело запроса с диска, поэтому вы сэкономите память, когда загрузка больших изображений.
Быстрый Google нашел это , что, по-видимому, предполагает, что вы должны публиковать в /upload_api.php, а не в /index.php.
Что-то вроде этого, вероятно, будет хорошим началом:
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithUrl:[NSURL URLWithString:@"http://www.imageshack.us/upload_api.php"]] autorelease];
[request setFile:@"/path/to/file" forKey:@"fileupload"];
[request setPostValue:@"yes" forKey:@"xml"];
[request setPostValue:@"blahblah" forKey:@"cookie"];
//It looks as though you probably need these too
[request setPostValue:@"me@somewhere.com" forKey:@"email"];
[request setPostValue:@"blah" forKey:@"key"];
[request start];
if ([request error]) {
NSLog(@"%@",[request error]);
} else {
NSLog([request responseString]); // The xml that got sent back
}
Предупреждение: не проверено!
Я использовал синхронный запрос, потому что вы это сделали, но вам почти наверняка следует использовать асинхронный запрос (очередь с ASIHTTPRequest).