2011-12-28 58 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

我想我會做的第一件事就是添加

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

到requestFinished:只是要確定你看到「失敗」被記錄。這將證明問題在於嘗試調用move_upload_file,我猜想這是出錯的地方。

如果是這樣的話,我會很確定你的web服務器運行的用戶沒有對upload_files目錄的寫入權限。

相關問題