图片上传在iphone

我是Iphone开发新手。 我想从Iphone库上传图片到服务器。 我想在屏幕上按一下button,用户可以看到图像文件并select一个用户想要的文件。 select文件后,我想在图像视图中显示图像。
怎么做。 如何使用ImageViewController?

谢谢,
Avinash Patil。

首先你必须得到图像forms的照片库,用于下面的代码。

  - (IBAction)BrowseImage:(id)sender { if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage, nil]; imagePicker.allowsEditing = NO; [self presentModalViewController:imagePicker animated:YES]; //newMedia = NO; } } -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self dismissModalViewControllerAnimated:YES]; } 

select图像后,你有发送该图像到服务器使用http post方法

这里是代码

  NSString *urlString = @"your Url"; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSMutableData *body = [NSMutableData data]; NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [request addValue:contentType forHTTPHeaderField:@"Content-Type"]; // file NSData *imageData = UIImageJPEGRepresentation([self scaleAndRotateImage:Mainimage.image],90); [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; // [body appendData:[[NSString stringWithString:@"Content-Disposition: attachment; name=\"user_photo\"; filename=\"photoes.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"%@.jpg\"\r\n",@"ImageNmae"] 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 stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; // Text parameter1 // NSString *param1 = @"parameter text"; [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"title\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:ImageTitel.text] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; // close form [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; // set request body [request setHTTPBody:body]; 

使用UIImagePickerController及其委托方法,并在控制器的.h文件中实现UIImagePickerControllerDelegate

只需编写这个代码点击button

 -(IBAction)btnTapped:(id)sender { UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init]; imgPicker.delegate = self; imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:imgPicker animated:YES]; } 

当你点击这个button时,UIImagePickercontroller会加载,select你想要的任何图片,这个UIImagePickerController的委托方法将会被调用

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissModalViewControllerAnimated:YES]; [picker release]; //This is selected image UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage]; YOURIMAGEVIEW.image = img; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [picker dismissModalViewControllerAnimated:YES]; [picker release]; } 

现在searchASIHttpRequest如何上传图片到networking服务器…尝试一些谷歌search