【发布时间】:2014-04-27 22:22:29
【问题描述】:
我正在尝试从 iphone 上传一张图片,从相机胶卷或新照片,我正在使用此代码在 - (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *) 中获取图像信息
self.image = UIImagePNGRepresentation([info objectForKey:UIImagePickerControllerEditedImage]);
我使用这个将图像发送到服务器
-(void)subeFoto1{
NSString *urlString = [NSString stringWithFormat:@"http://bonsai.com.ec/scrum/SubeImagen.php"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------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 stringWithFormat:@"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"img.png\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:self.image]];
[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];
self.urlImage = [NSString stringWithFormat:@"http://bonsai.com.ec/scrum/%@", returnString];
NSLog(@"URL %@", self.urlImage);
}
但它需要永远!我更改了 php,所以现在我保存的图像是 250kb,但问题出在我认为的应用程序中,有什么想法吗?
【问题讨论】:
-
还显示 php 代码.. 可能有帮助...
-
您应该改用异步请求。当前的实现将使您的应用程序感觉被锁定。另外你为什么要声明 returnData 直接指向 NSURLConnection?
-
我需要获取最近上传的图片的url,所以我可以将它保存到数据库中......
标签: ios iphone objective-c uiimagepickercontroller