2011-06-20 2 views
0

До сих пор я посылаю strings к серверу с помощью этого метода:пришлите UIImage на сервер

NSString *reqURL = [NSString stringWithFormat:]; 
reqURL = [reqURL stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:reqURL]]; 
NSURLResponse *resp = nil; 
NSError *err = nil; 
[NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &err]; 

, и я хочу знать, если есть возможность отправить UIImage на сервер.

ответ

2

Если ваше изображение png, то используйте UIImagePNGRepresentation, чтобы получить его данные в NSData.

NSData *data = UIImagePNGRepresentation(myUIImage); 

если ваше изображение jpg или jpeg затем использовать UIImageJPEGRepresentation, чтобы получить его данные в NSData.

NSData *data = UIImageJPEGRepresentation(myUIImage); 

Проверить в Documentation

Проверьте ниже SO опубликовать для отправки NSDataUIImage на сервер.

Sending an image data(NSData) to the server

1

вы можете попробовать это: -

NSData *imagedata=[NSData dataWithData:UIImagePNGRepresentation(self.editedImage)]; 
    NSString *base64string=[imagedata base64EncodedString]; 
    NSString *str = [NSString stringWithFormat:@"%@/uploadBlogData.php",appUrl]; 
    NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setPostValue:base64string forKey:@"imagedata"]; 
    [request setRequestMethod:@"POST"]; 
    [request setDelegate:self]; 
    [request startSynchronous]; 

     NSLog(@"responseStatusCode %i",[request responseStatusCode]); 
    NSLog(@"responseStatusString %@",[request responseString]); 

Что этот код именно это делает, я преобразовать мое изображение в NSData, а затем снова кодировать в базе 64 строки. Вы также можете это сделать.

0

Использование ASIHTTPRequest

и сделать это:

-(void)uploadImage{ 
     ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

     // Upload a file on disk 
     [request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" 
    forKey:@"photo"]; 

     // Upload an NSData instance 
     [request setData:UIImageJPEGRepresentation(myUIImage) withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"]; 

     [request setDelegate:self]; 
     [request setDidFinishSelector:@selector(uploadRequestFinished:)]; 
     [request setDidFailSelector:@selector(uploadRequestFailed:)]; 

     [request startAsynchronous]; 
} 
Смежные вопросы