2011-03-16 6 views
2

私は本当に本当に本当に助けを借りることができます。私は、写真のアップロードにASIFormDataRequestを使用する際の詳細なドキュメンテーション(ダミー用)をどこからでも見てきました。誰かがここに私のライフラインを通すことができますか?初心者がASIHTTPRequestを使用してファイルをアップロードする際に問題が発生する

ここに私は持っているものがあります。

Camera.h

#import <UIKit/UIKit.h> 
@class ASIFormDataRequest; 

... 

Camera.mここ

#import "Camera.h" 
#import "ASIHTTPRequest.h" 
#import "ASIFormDataRequest.h" 

... 

- (void)uploadImage:(NSData *)imageData filename:(NSString *)filename{ 
NSURL *url = [NSURL URLWithString:@"http://moosesightings.com/test.php"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
// Upload a file on disk 
[request setData:imageData withFileName:filename andContentType:@"image/jpeg" forKey:@"userfile"]; 
[request setDelegate:self]; 
[request startAsynchronous]; 
} 

... 

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
[picker dismissModalViewControllerAnimated:YES]; 
[picker.view removeFromSuperview]; 
// Access the uncropped image from info dictionary 
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
NSString *imageName = @"uploaded.jpg"; 

// Save image 
//UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 
[self uploadImage:UIImageJPEGRepresentation(imageView.image, 1.0) filename:imageName]; 

captionControls.hidden = NO; 
[textView becomeFirstResponder]; 

[picker release]; 
} 

は、私はそれを受信したスクリプトです。ここで

$dir_dest = 'uploads/'; 
ob_start(); 
print_r($_FILES); 
$test = ob_get_contents(); 
ob_end_clean(); 
$db->insert('connecttest', array('ts'=>date('Y-m-d H:i:s'), 'tempfield'=>$test))->execute(); 

は、私は同様の問題に直面した:(

答えて

7

助けてください、私は

Array 
(
    [(null)] => Array 
     (
      [name] => (null) 
      [type] => (null) 
      [tmp_name] => C:\Windows\Temp\phpCFF0.tmp 
      [error] => 0 
      [size] => 0 
     ) 

) 

を取得した結果ですが、私は

UIImage *im = [info objectForKey:@"UIImagePickerControllerOriginalImage"] ; 
UIGraphicsBeginImageContext(CGSizeMake(320,480)); 
[im drawInRect:CGRectMake(0, 0,320,480)]; 
newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
NSData* imageData=UIImageJPEGRepresentation(newImage, 0.5); 

を使用して画像をサイズ直し、それが開始作業中は、キャプチャした画像の高さと幅が2000x2000以上になるので、それを減らして試してみてください。

[request setData:imageData withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:@"file"]; 

これはPHPスクリプトです。

$filename="uploaded"; 
$target_path = "uploads/"; 
$target_path = $target_path .$filename.".jpg"; 
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { 
echo "uploaded an image"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 
+0

私はありがとうございます。 – Mitchell

+1

あなたはロック!ちょうど他の人が知っているので – Mitchell

+0

あなたはすばらしい!私はそれもうまくいった.... – user2136

関連する問題