iOS POST 上传图片
2016-01-27 17:36
471 查看
上传图片两种操作方式:一种是从相册上传,一种是拍照上传
1.UIImagePickerController在这个代理方法中做如下处理:
#pragma mark - UIImagePickerController Delegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = info[UIImagePickerControllerOriginalImage];
[self uploadImage:image];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// bug fixes: UIIMagePickerController使用中偷换StatusBar颜色的问题
if ([navigationController isKindOfClass:[UIImagePickerController class]] &&
((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
}
[navigationController.navigationBar setTintColor:[UIColor whiteColor]];
}
2.调接口上传图片,图片必须转为NSData 通过这个方法 NSData *data = UIImageJPEGRepresentation(image, .5f);
上传接口如下:
- (void)uploadImage:(UIImage *)image
{
[MLProgressView showProgressViewAddedTo:self.view displayMessage:@"请稍后..." withType:0];
NSData *data = UIImageJPEGRepresentation(image, .5f);
XXXXNetRequestData *req = [[XXXXNetRequestData alloc] init];
[req setData:data forKey:@"imageFile"];
[req setString:@"0" forKey:@"imageType"];
[[网络请求类 sharedClient] requestPostWithType:XXXXRequest_uploadImage
args:[req toDictionary]
success:^(id responseObject) {
[MLProgressView hideAllHUDsForView:self.view];
NSString *url = [responseObject objectForKey:@"url"];
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"sendImgLink('%@')",url]];
} failure:^(NSError *error) {
[MLProgressView hideAllHUDsForView:self.view];
Alert(@"", @"上传失败");
}];
}
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"sendImgLink('%@')",url]]; 这个端代码是涉及到与HTML交互,在HTML网页上来完成上传。
1.UIImagePickerController在这个代理方法中做如下处理:
#pragma mark - UIImagePickerController Delegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = info[UIImagePickerControllerOriginalImage];
[self uploadImage:image];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// bug fixes: UIIMagePickerController使用中偷换StatusBar颜色的问题
if ([navigationController isKindOfClass:[UIImagePickerController class]] &&
((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
}
[navigationController.navigationBar setTintColor:[UIColor whiteColor]];
}
2.调接口上传图片,图片必须转为NSData 通过这个方法 NSData *data = UIImageJPEGRepresentation(image, .5f);
上传接口如下:
- (void)uploadImage:(UIImage *)image
{
[MLProgressView showProgressViewAddedTo:self.view displayMessage:@"请稍后..." withType:0];
NSData *data = UIImageJPEGRepresentation(image, .5f);
XXXXNetRequestData *req = [[XXXXNetRequestData alloc] init];
[req setData:data forKey:@"imageFile"];
[req setString:@"0" forKey:@"imageType"];
[[网络请求类 sharedClient] requestPostWithType:XXXXRequest_uploadImage
args:[req toDictionary]
success:^(id responseObject) {
[MLProgressView hideAllHUDsForView:self.view];
NSString *url = [responseObject objectForKey:@"url"];
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"sendImgLink('%@')",url]];
} failure:^(NSError *error) {
[MLProgressView hideAllHUDsForView:self.view];
Alert(@"", @"上传失败");
}];
}
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"sendImgLink('%@')",url]]; 这个端代码是涉及到与HTML交互,在HTML网页上来完成上传。
相关文章推荐
- Xcode7打包,iOS9真机闪退,如何解决?
- iOS开发-进阶:图像进行压缩方法汇总
- iOS开发-基础:获取系统当前日期,断点输出时间
- iOS相机权限、相册权限、定位权限判断
- iOS开发-基础:使用Base64编解码NSData和NSString对象
- ios自动打包(适用于批量打包)
- 真机iOS SDK升级后xcode不能进行真机调试 怎么办
- iOS开发-进阶:通过(lame)将录制音频转换成Mp3
- [IOS 开发] 强引用(__strong)和 弱引用(__weak)
- iOS开发-进阶:音频播放、录音、视频播放、拍照、视频录制
- iOS裁剪,缩放图片白边问题解决办法
- 关于Xcode的Other Linker Flags
- iOS数组和字典转Json字符串
- IOS项目之弹出动画终结篇
- ios开发中,xib加载view,loadNibNamed方法奔溃原因之一
- iOS隐藏tableview多余的分割线以及解决cell左边短20px
- iOS 毛玻璃效果
- iOS开发--常用技巧 (MJRefresh详解)
- iOS 修改状态栏颜色
- 苹果IOS开发者账号总结