2011-09-10 4 views
0

this website에서 아래 사진을 사용하여 UIImagePickerController로 선택한 사진을 보내려고합니다.ASIHTTP 및 UIImagePicker를 사용하여 iPhone에서 이미지 보내기

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request addPostValue:@"Ben" forKey:@"names"]; 
[request addPostValue:@"George" forKey:@"names"]; 
[request addFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photos"]; 
[request addData:imageData withFileName:@"george.jpg" andContentType:@"image/jpeg" forKey:@"photos"]; 

imageURL = [info valueForKey:UIImagePickerControllerReferenceURL]; 
NSLog(@" %@ ", imageURL); 
stringURL = [imageURL absoluteString]; 

이 두 코드를 연결하는 방법을 알지 못합니다. 이 URL을 사용하여 내 iPhone에서 이미지를 찾은 다음 ASIHTTP 코드로 보내주십시오. 어떤 아이디어?

답변

1

먼저 이미지를 저장하고 파일 이름이나 파일 경로를 추적해야합니다. 여기서는 고유 한 이미지 이름을 만들 때 시간 간격을 사용했습니다. photoImage는 저장하려는 UIImage입니다.

NSTimeInterval timeInterval = [NSDate timeIntervalSinceReferenceDate]; 
NSString *photoName=[NSString stringWithFormat:@"%lf-Photo.jpeg",timeInterval]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
// the path to write file 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:photoName]; 
NSData * photoImageData = UIImageJPEGRepresentation(photoImage, 1.0); 
[photoImageData writeToFile:appFile atomically:YES]; 

은 그럼 당신은 가서 저장된 파일 이름을 사용하여 파일 경로를 잡아하거나 이미 저장된 경우 파일 경로는 다음 비트를 건너 뜁니다.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:photoName]; 

그런 다음 우리는 HTTP 요청을 통해 파일 경로에서 데이터를 보냅니다.

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
request.requestMethod = @"POST"; 
[request setFile:filePath forKey:@"file1"]; 
[request startSynchronous]; 
관련 문제