2013-09-27 3 views
0

ASIFormDataRequest를 사용하여 서버에 이미지를 업로드하는 방법은 무엇입니까? 이미지를 업로드하려고 시도했지만 삽입하는 동안 오류가 표시되지 않습니다. 내 요청에 성공한 응답을 얻는 방법을 완료했습니다. 그래서 문제는 무엇입니까, 나는 내가 삽입 한 이미지를 얻을 수 없다는 것을 삽입 한 데이터를 얻을 때도 있지만, 이미지 경로를 얻는 것도 있습니다.ASIFormDataRequest를 사용하여 서버에 이미지를 게시하는 방법은 무엇입니까?

여기 post에 설명 된대로 당신은 [request setFile:@"YOUR IMAGE FILE PATH" forKey:@"photo"]; 대신 [request addData:dataImage withFileName:@"Image.png" andContentType:@"image/png" forKey:@"photo"]; 을 사용할 수 있습니다 내 코드

NSString *globalurl =[[NSUserDefaults standardUserDefaults]valueForKey:@"Global_Url"]; 

NSString *urlStr=[NSString stringWithFormat:@"%@/InsertUserInfo?User_Name=%@&User_Pwd=%@&User_FName=%@&User_LName=%@&User_Mail=%@&User_Phno=%@&User_Address=%@&User_Dob=%@&Ic_No=%@&User_Active=%@&User_Questions=%@&User_Ans=%@",globalurl,usernameTxtFld.text,pwdTxtFld.text,firstName.text,lastName.text,email.text,phonNO.text,address.text,dateOfbirth.text,nricNo.text,@"10001",@"",@""]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]]; 
[request setRequestMethod:@"POST"]; 
[request setDelegate:self]; 
[request addData:dataImage withFileName:@"Image.png" andContentType:@"image/png" forKey:@"photo"]; 
//check if passedData is nil 
if (dataImage == nil) 
{ 
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"title:iDnil" message:@"nil" delegate:nil cancelButtonTitle:@"fgff" otherButtonTitles:@"erer", nil]; 
    [alert show]; 
} 
[request startAsynchronous]; 

-(void)requestFinished:(ASIHTTPRequest *)request { 

NSString *receivedString = [request responseString]; 
NSLog(@"received messge %@",receivedString); 
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:receivedString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
[alertView show]; 
} 


     - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 
dataImage = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],1); 
NSLog(@"dict is %@",info); 
UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage]; 

    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

제안 : AFNetworking을 사용하십시오. 현재 개발 중입니다. – zaph

+0

ok afnetworking을 사용해 보겠습니다. – user2230971

+0

어디에서 이미지 데이터를 업로드하고 있습니까? 너 세계화를 다시 확인 했니? – thatzprem

답변

0

입니다. 그것은 매력처럼 나를 위해 일했습니다 :-)

+0

하지만 경로를 얻는 방법 image form iphone gallary – user2230971

+0

당신은 문서 디렉토리에 아이폰 gallary에서 이미지를 저장할 수 있습니다. 그리고 문서 doectory – Ankush

0

텍스트 파일, 이미지, 비디오, 이미지 업로드를 수행하는 예제 응용 프로그램을 업로드했습니다. link의 GitHub에 대한 비디오를 업로드했습니다. 당신은 잘 보아도 좋습니다.

ASI-http-request에는 이미지 파일을 디스크에서 즉시 스트리밍하는 최적화 옵션이 있습니다.이 라이브러리로 본 것이 가장 좋습니다. ASIFormDataRequest를 만들려면 아래의 코드 스 니펫을 사용하십시오.

// Initilize Variables 
    NSURL * url = [NSURL URLWithString:IMAGE_POST_URL]; 

    // Add Image 
    NSString *path = [[NSBundle mainBundle]pathForResource:@"image1" ofType:@"jpg"]; 

    // Get Image 
    NSData *imageData = [[NSData alloc] 
         initWithContentsOfFile:path]; 

    // Return if there is no image 
    if(imageData != nil){ 

     //Request-1 
     ASIFormDataRequest * request1; 
     [request1 setTag:201]; 

     request1 = [[ASIFormDataRequest alloc] initWithURL:url]; 
     [request1 setPostValue:@"ID = 201" forKey:@"image_upload"]; 
     [request1 setFile:path forKey:@"image1_file"]; 
     [request1 setDelegate:self]; 
     [request1 setDidFinishSelector:@selector(imageUploadDidFinish:)]; 
     [request1 setDidFailSelector:@selector(imageUploadDidFail:)]; 
     [request1 setTimeOutSeconds:500]; 
     [request1 setShouldStreamPostDataFromDisk:YES]; 
} 
+0

에있는 이미지의 경로를 제공하지만 그녀의 이미지는 내 번들 파일에서 아이폰 gallary에서 선택해야합니다 – user2230971

관련 문제