Загрузка изображения в веб-сервис - новичок - PullRequest
0 голосов
/ 04 марта 2012

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

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];

1.) Поскольку я беру фотографию с камеры iPhone или загружаю ее с uiimagepickerview, мне нужно знать, какое значение следует установить для setFile (текст для замены @"/Users/ben/Desktop/ben.jpg")?

2.) Мне также нужно протестировать это приложение, поэтому кто-нибудь знает соответствующий код PHP, где я мог бы отобразить снятое изображение (в веб-браузере). Учебники или примеры кодов

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Чтобы получить ответ на 1-й вопрос, просмотрите следующий фрагмент кода:

#import <MobileCoreServices/MobileCoreServices.h>

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    BOOL isImage = ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:kUTTypeImage]);
    if (isImage) {
        self.request = [ASIFormDataRequest requestWithURL:url];
        UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
        NSData *imageData = UIImageJPEGRepresentation(originalImage, 0.7);
        [self.request setData:imageData
                 withFileName:@"photo.jpg"
               andContentType:@"image/jpeg"
                       forKey:@"photo"];
        [self.request start];
    }
}

Пожалуйста, рассмотрите возможность добавления свойства в ваш класс делегатов UIImagePiclerController

@property(nonatomic, retain) ASIFormDataRequest *request;

Это позволит вам остановить запрос или, по крайней мере, установить его делегат равным nil, если ваш объект освобожден, просто реализовав

- (void) dealloc {
    [self.request cancel];
    self.request.delegate = nil;
    [request release];
    [super dealloc];
}
0 голосов
/ 04 марта 2012

Вы должны добавить изображение в тело запроса в качестве данных изображения.

Взгляните на ASIHttp Framework

И даже вы не получите ПожалуйстаПерейдите по этой ссылке

...