2014-04-15 2 views
0

iOS 앱에서 내 서버로 이미지를 업로드하려고하는데 PHP 스크립트의 "Unsuccessful"이 속임수를 쓰고 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?AFNetworking 업로드 이미지

Log은 "File = Unsuccessful"을 반환 한 다음 이진 파일 번호를 반환합니다.

아이폰 OS (이미지 업로드) :

-(IBAction)uploadPhoto:(id)sender{ 

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://SERVERURL"]]; 
    manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
    NSData *imageData = UIImageJPEGRepresentation(pickedImage, 0.5); 
    NSDictionary *parameters = @{@"message": self.descriptionView.text}; 
    AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     //do not put image inside parameters dictionary as I did, but append it! 
     [formData appendPartWithFileData:imageData name:@"file" fileName:@"upload.jpg" mimeType:@"image/jpeg"]; 
    } success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
    }]; 
    [op start]; 


     [self dismissViewControllerAnimated:YES completion:nil]; 
    } 
} 

PHP 코드 : 디렉토리의 끝에

<? 
if(!empty($_POST)) 
{ 
    $message = $_POST['message']; 
    $directory = $_SERVER['DOCUMENT_ROOT'] . '/pictures'; 
    $file = basename($_FILES['userfile']['upload.jpg']); 
    $uploadfile = $directory . $file; 
    var_dump($_FILES); 
    $randomPhotoID = md5(rand() * time()); 
echo 'file='.$file; 
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
     echo 'successful'; 

    } 
    else 
    { 
    echo 'unsuccessful'; 

} 
} 
else 
{ 
    echo('Empty post data'); 
} 
?> 

답변

0

잊지 마세요 / 당신이 연결할 때문에 그 파일 이름 :

$directory = $_SERVER['DOCUMENT_ROOT'] . '/pictures/'; 

여전히 문제가 발생하는 경우 추가 체크를 시도하십시오.

<?php 
if(isset($_POST)) { 
    $message = $_POST['message']; 
    if(is_uploaded_file($_FILES['userfile']['tmp_name']){ 
    //we got something, set it up 
    $directory = $_SERVER['DOCUMENT_ROOT'] . '/pictures/'; 
    $file = basename($_FILES['userfile']['name']);   
    $uploadfile = $directory . $file; 
    $randomPhotoID = md5(rand() * time()); 
    //perform the upload 
    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
     echo 'successful'; 
    } else { 
     echo 'unsuccessful'; 
    } 
    }else{ 
     echo "Nothing was uploaded"; 
    } 
}else{ 
    echo 'POST is not set cannot proceed to upload'; 
} 
+0

이렇게하면 내부 서버 오류 (500)가 발생합니다. hmm – user3423384

+0

당신은 디렉토리 경로를 하드 코드 해 주시겠습니까 – meda

+0

하드 코딩을했는데 디렉토리 경로에 약간의 오류가 발견되었습니다. 현재 정확한지는 모르지만 문제는 해결되지 않습니다. 서버는 우분투 서버입니다. 문제가 될지 모른다. – user3423384

관련 문제