2011-12-28 11 views
0

私のIPhoneアプリケーションでASIHTTPRequestライブラリを使用してサーバーに画像をアップロードします。IPhoneアプリケーションのASIHTTPRequestを使用してサーバーに画像ファイルをアップロード

画像のアップロードでは、ASIFormDataRequestを使用してサーバーにアップロードしています。

私のアプリで以下のコードを試しましたが、動作できず、画像がサーバーにアップロードされませんでした。私は私のアプリでコードの上にしようとしている

NSURL *url = [NSURL URLWithString:@"http://www.anglerdemo.com/Appln/Aghaven_iphone/Uploadphoto.php"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
request.requestMethod = @"POST"; 
NSString *fileName = @"iphone.jpg"; 
[request addPostValue:fileName forKey:@"name"]; 

// Upload an image 
UIImage *img = [UIImage imageNamed:fileName]; 
NSData *imageData = UIImageJPEGRepresentation(img, 90); 
NSLog(@"imageData ==> %@", imageData); 
[request setData:imageData withFileName:fileName andContentType:@"image/jpeg" forKey:@"image"]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

、正常に実行され、私はASIHTTPRequestの「requestFinished」デリゲートメソッドに警告メッセージが表示されました要求します。画像はサーバーにアップロードされませんでした。

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

[[[[UIAlertView alloc] 
    initWithTitle:@"Message" 
    message:@"Success!!!" 
    delegate:self 
    cancelButtonTitle:@"OK" 
    otherButtonTitles:nil] 
    autorelease] 
show]; 

NSLog(@"success ==> "); 
} 

アップロードのためのPHPファイルスクリプトを試したところ、以下のとおりです。

<?php 
    $uploaddir = 'upload_files/'; 
    $file = basename($_FILES['image']['name']); 
    $uploadfile = $uploaddir . $file; 

    if(move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) 
    { 
    echo "Photo has been saved successfully!…; 
    } 
    else { 
echo "Failed"; 
    } 
?> 

この点についてお手伝いしてください。

ありがとうございました!

答えて

1

私は、私はどうしたらまず最初にrequestFinishedに

NSLog(@"%@", [request responseString]); 

を追加していると思う:ちょうどあなたがログに記録されている「失敗」を参照してくださいします。これは、move_upload_fileを呼び出すときに問題が発生することを証明します。move_upload_fileは、問題が起こる場所です。

この場合、あなたのウェブサーバが実行されているユーザがupload_filesディレクトリへの書き込み権限を持っていないことは間違いありません。

関連する問題