我有两个UI
ImageViews.我想通过脚本将两个图像发布到服务器.在此之前,我必须将这些图像转换为数据和数据到字符串,但我不知道如何将图像从UIImageView转换为NSData和NSData转换为NSString.I已经引用了所有代码,但它不起作用.我还想知道在我的代码中应该在哪里声明转换编码(图像到数据和数据到图像)?
这就是我实施的内容
.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); }
解决方法
我认为Ashu的回答将返回null.尝试这个
NSData *dataImage = [[NSData alloc] init]; dataImage = UIImagePNGRepresentation(image); NSString *stringImage = [dataImage base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];