2014-09-11 3 views
0

Я пытаюсь загрузить изображение в базу данных MySQL с помощью PHP в XCODE, но у меня проблемы, потому что он не работает. Он отлично работает, когда пользователь вставляет текст, но когда дело доходит до изображения, я не могу это сделать.Загрузить изображение, используя xcode (MySQL + PHP)

Я прочитал несколько уроков и примеров, но они не работают в моем проекте xcode. Можете ли вы помочь мне с этой проблемой?

Вот мой код:

- (IBAction)uploadPhoto:(UIButton *)sender { 

    NSLog(@"Photo enviada"); 
    /* 
    NSString *strURL = [NSString stringWithFormat:@"http://example.com/upload.php?image=%@",_imageView.image]; 
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 
    NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", strResult); 
    */ 
    NSData *imageData = UIImageJPEGRepresentation(_imageView.image, 90); 
    NSString *urlString = @"http://autograpp.com/upload.php"; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 

    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    NSMutableData *body = [NSMutableData data]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"ipodfile.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request setHTTPBody:body]; 

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
} 

Но я получаю сообщение об ошибке на:

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 

ARC запрещает явное сообщение посыла autorelease.

Заранее спасибо.

+0

Каков тип соответствующего поля изображения? – ursitesion

+0

Привет. Как я могу увидеть тип данных изображения? Еще раз спасибо за помощь ursitesion. – WirajPS

+0

Как я понимаю, вам нужно вставить изображение в столбец таблицы. Когда вы создаете таблицу, вы должны определить тип данных столбцов. В столбце, в котором вы должны сохранить изображение, выберите тип данных как 'blob'. Чтобы узнать больше о 'datatype' blob', см. 'Http: // dev.mysql.com/doc/refman/5.0/en/blob.html' – ursitesion

ответ

0

Вы используете - autorelease в проекте с поддержкой ARC; это не является ни необходимым, ни разрешенным. Этот код, вероятно, немного старше и предварительные даты ARC (автоматический подсчет ссылок.)

Если заменить

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 

с

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

он должен работать.

В ARC вам больше не нужно сохранять/освобождать объекты; это делается автоматически.

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