Как загрузить изображение на удаленный сервер в iphone?

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

-(void)searchAction:(UIImage*)theImage
{
    UIDevice *dev = [UIDevice currentDevice];
    NSString *uniqueId = dev.uniqueIdentifier;

    NSData * imageData = UIImagePNGRepresentation(theImage);

    NSString *postLength = [NSString stringWithFormat:@"%d",[imageData length]];

    NSString *urlString = [@"http://www.amolconsultants.com/im.jsp?" stringByAppendingString:@"imagedata=iPhoneV0&mcid="];
    urlString = [urlString stringByAppendingString:uniqueId];
    urlString = [urlString stringByAppendingString:@"&lang=en_US.UTF-8"];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:imageData];

    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn == nil) 
    {
        NSLog(@"Failed to create the connection");
    }
}

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

Кто-нибудь может мне с этим помочь...

Любой код будет очень полезен...

Спасибо заранее...


person Atulkumar V. Jain    schedule 11.03.2010    source источник
comment
Я не вижу ничего плохого в вашем коде, и в любом случае вы должны увидеть вывод в окне консоли. Пробовали пройти через отладчик?   -  person Frank Schmitt    schedule 11.03.2010
comment
Нет, я не пробовал отлаживать программу...   -  person Atulkumar V. Jain    schedule 11.03.2010


Ответы (1)


Вы можете использовать сторонние библиотеки под названием http://allseeing-i.com/ASIHTTPRequest/How-to-use. Это упрощает для вас большую часть тяжелой работы. В вашем случае вы просто делаете следующее:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:imageData];
[request setRequestMethod:@"PUT"];
person Hoang Pham    schedule 11.03.2010
comment
но я пытаюсь загрузить изображение с iphone. изображение не на моем Mac, оно будет щелкнуто пользователем с помощью камеры iphone, и я хочу опубликовать это изображение на сервере. Можете ли вы помочь мне с этим... - person Atulkumar V. Jain; 11.03.2010
comment
Я говорю об iphone, а не о Mac. Вы можете сохранить изображение в папку «Документы», а затем сделать то же самое. - person Hoang Pham; 11.03.2010
comment
Используйте следующую функцию NSData: [urlData writeToFile:filePath атомарно:NO]; - person Hoang Pham; 11.03.2010
comment
в противном случае вам не нужно сохранять в папку документов, здесь у вас уже есть nsdata, вы можете использовать другую функцию библиотеки ASI для прямой публикации NSData. - person Hoang Pham; 11.03.2010
comment
Это дает мне ошибки, указывающие на необъявленное первое использование ASIHTTPRequest в этом методе. Должен ли я импортировать какой-либо заголовочный файл или добавить некоторые рамки... - person Atulkumar V. Jain; 11.03.2010
comment
о, вы должны следовать инструкциям по настройке на сайте, который я вам дал, чтобы вызвать эту функцию. - person Hoang Pham; 11.03.2010