将UIImage转换为NSData并将NSData转换为NSString以便将图像发布到服务器

用户名

我有两个UIImageViews。我想通过脚本将两个图像发布到服务器。在此之前,我必须将这些图像数据和数据转换成字符串,但我不知道如何将图像从转换UIImageViewNSDataNSDataNSString。我已经提到的所有代码,但它不工作。我还想知道在代码中应在哪里声明转换编码(图像到数据和数据到图像)?

这就是我实现的

.h部分

  #import <UIKit/UIKit.h>
  #import "GlobalAccessClass.h"
  #import  <QuartzCore/QuartzCore.h>

  @interface AskQuestionHome :  UIViewController<UITextViewDelegate,UITextFieldDelegate,UIImagePickerControllerDelegate,UIActionSheetDelegate>

  {

  }
  @property (strong, nonatomic) IBOutlet UIImageView *imgSecondImg;

  @property (strong, nonatomic) IBOutlet UIImageView *imgFirstImg;

  @property (strong, nonatomic) IBOutlet UITextView *txtviewAsk;

  -(IBAction)postbutton:(id)sender;

  @property (nonatomic,retain) NSString *datestr;

  @property(nonatomic,retain) NSData *imageData;

  @property(nonatomic,retain) NSString *postLength;

  @end

.m部分

 -(void)post
 {
     NSMutableURLRequest *mutableurlrequest = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://www.alvinchuastudios.com/aNSWERED/insert_question.php"]];

  // create the Method  "POST" For POSTING the QUESTIION with IMAGES
        [mutableurlrequest setHTTPMethod:@"POST"];

        NSLog(@"the email is:%@",manage.transformEmail);
        NSLog(@"the cat is:%@",manage.transformCategories);
        NSLog(@"the text is:%@",textviewText.text);
       // NSLog(@"the firstimage is:%ld",(long)imgFirstImg.tag);
       // NSLog(@"the secondimage is:%ld",(long)imgSecondImg.tag);
       // NSlog(@"the status is:%d",1);
        NSLog(@"the user is:%@",manage.transformName);
        NSLog(@"the user registered is:%@",datestr);


  //passing the string to the server
        NSString *qususerUpdate =[NSString stringWithFormat:@"email_id=%@&cat=%@&q_text=%@&q_image1=%ld&q_image2=%ld&q_status=1&last_upd_by=%@&last_upd_timestamp=%@",manage.transformEmail,manage.transformCategories,textviewText.text,(long)imgFirstImg.tag,(long)imgSecondImg.tag,manage.transformName,datestr,Nil];


  //check the value that what we passed 
        NSLog(@"the data Details is =%@", qususerUpdate);


  //Convert the String to Data
        NSData *data1 =[qususerUpdate dataUsingEncoding:NSUTF8StringEncoding];

  //Apply the data to the body
        [mutableurlrequest setHTTPBody:data1];

  //Create the response and Error
        NSError *err;
        NSURLResponse *response;
        NSData *responseData =[NSURLConnection sendSynchronousRequest:mutableurlrequest returningResponse:&response error:&err];
        NSString *resStr =[[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];

  //This is for Response
        NSLog(@"got response==%@", resStr);  } 
用户名

长时间后,我在这里发布我的答案。

选项1:映像到服务器和映像从服务器

当我们将图像发送到服务器(UIImage-NSData-NSString)时,我们需要使用以下代码

NSData *postData = UIImageJPEGRepresentation(myImage, 1.0);
NSString *strEncoded  = [postData base64EncodedStringWithOptions:0];

当我们从服务器获取图像(NSString-NSData-UIImage)时,我们需要使用以下代码

NSData *getData  = [[NSData alloc] initWithBase64EncodedString:strEncodedFromServer options:0];
UIImage *image = [UIImage imageWithData:getData];

选项2:简单字符串编码,解码转换

NSString *strName = @"iOS";
NSData *dataEncoded = [strName dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [dataEncoded base64EncodedStringWithOptions:0];
NSLog(@"The Encoded String is - %@", base64EncodedString);

NSData *dataDecoded = [[NSData alloc] initWithBase64EncodedString:base64EncodedString options:0];
NSString *strDecoded = [[NSString alloc] initWithData:dataDecoded encoding:NSUTF8StringEncoding];
NSLog(@"The DeCoded String is - %@", strDecoded);

现“输出屏幕截图”为

在此处输入图片说明

选项3:当我们需要对字典进行编码和解码时

NSDictionary *dictEncoded = @{
                                    @"OS":@"iOS",
                                    @"Mobile":@"iPhone",
                                    @"Version":@"iOS10"
                                };

NSData *dataDictEncode = [NSJSONSerialization dataWithJSONObject:dictEncoded options:(NSJSONWritingOptions) 0 error:nil];
NSString *strBase64Encode = [dataDictEncode base64EncodedStringWithOptions:0];
NSLog(@"The encoded dictionary is - %@", strBase64Encode);

NSData *dataDictDecode = [[NSData alloc] initWithBase64EncodedString:strBase64Encode options:0];
NSDictionary *dictDecoded = [NSJSONSerialization JSONObjectWithData:dataDictDecode options:NSJSONReadingMutableContainers error:nil];
NSLog(@"The decoded dictionary is - %@", dictDecoded);

输出结果是

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将UIImage转换为NSData并将NSData转换为NSString以便将图像发布到服务器

来自分类Dev

将UIImage转换为NSData

来自分类Dev

将NSData转换为UIImage

来自分类Dev

将NSData转换为NSString返回nil

来自分类Dev

将UIimage(拍照)转换为NSData

来自分类Dev

将UIImage转换为NSData并返回到UIImage

来自分类Dev

将MKRoute转换为NSData

来自分类Dev

将NSData转换为SecKeyRef

来自分类Dev

将AVPlayerItem转换为NSData

来自分类Dev

将NSData转换为SecKeyRef

来自分类Dev

将未知编码的NSData网页转换为NSString

来自分类Dev

将NSData转换为NSString返回随机字符

来自分类Dev

由于某些字符,将NSData转换为NSString失败

来自分类Dev

将文字数据NSData转换为NSString

来自分类Dev

如何以编程方式将NSData转换为NSString?

来自分类Dev

将NSData转换为NSString返回随机字符

来自分类Dev

将NSData转换为NSString-NSLog限制

来自分类Dev

将UIImage转换为NSData时保留其遮罩

来自分类Dev

从NSString转换为NSData时

来自分类Dev

将图像的NSData转换为字符串

来自分类Dev

将图像的NSData转换为字符串

来自分类Dev

如何将NSAttributedString转换为NSData?

来自分类Dev

将JSON NSData转换为NSDictionary

来自分类Dev

将AVAudioPCMBuffer转换为NSData并返回

来自分类Dev

如何将NSUUID转换为NSData

来自分类Dev

将CGPoints的NSArray转换为NSData块

来自分类Dev

将Dictionary <String:任何?>转换为NSData

来自分类Dev

将JSON NSData转换为字典

来自分类Dev

无法将NSData转换为int