2011-09-10 16 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]; 

この2つのコードをどのように接続するかはわかりません。私はこの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]; 
関連する問題