0

アップロードされたファイルを適切なディレクトリに移動しようとすると、次のような問題が発生します: PHP move_uploaded_file() エラー? ただし、コードとアクセス許可に関しては、すべて問題ないようです。私は Objective-C の部分にこのチュートリアルを使用しています: http://www.michaelroling.com/post/upload-an-image-using-objective-cと、アプリと PHP スクリプトの完全な実装が以下に書かれています。ただし、問題は、Objective-C が実際に画像を送信していないことです。さらに情報が必要な場合はお知らせください。PHP は以下を返します。

ファイルのアップロードは成功したと報告されますが、実際には jpeg はアップロードされません。

- (IBAction)shareWithFriends:(id)sender
{

if (imageView.image != nil)
{
    NSData *image = UIImageJPEGRepresentation(imageView.image, 0.1);

    self.fileUploadClient = [[fileUploadClient alloc] initWithHostName:@"shipstudent.com" customHeaderFields:nil];

    NSMutableDictionary *postParameters = [NSMutableDictionary dictionaryWithObject:@"Animal" forKey:@"appID"];

    self.fileOperation = [self.fileUploadClient postData:postParameters path:@"/animal/pictureuploads.php"];

    [self.fileOperation addData:image forKey:@"userfl" mimeType:@"image/jpeg" fileName:@"upload.jpg"];

    [self.fileOperation addCompletionHandler:^(MKNetworkOperation *operation)
    {

        NSLog(@"%@",[operation responseString]);
    }

     errorHandler:^(MKNetworkOperation *errorOperation, NSError *error)
     {

         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles: nil];

         [alert show];

     }];

    [self.fileUploadClient enqueueOperation:self.fileOperation];

}
else
{

}

}

PHP:

<?php


if(!empty($_POST)) 
{

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

$file = basename($_FILES['userfl']['upload.jpg']);

$uploadfile = $directory . $file;

    $randomPhotoID = md5(rand() * time());

echo "file=".$file;

//where the error resides
if (move_uploaded_file($_FILES['userfl']['tmp_name'], $uploadfile)) {
       echo 'successful';
    }
    else
    {
    echo 'unsuccessful';

}

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

?>
4

1 に答える 1

2

エラーからわかるように、どこにも書き込もうとしています。あなたの$uploaddir変数は決して設定されず、$file常にnullになるので、に書き込むように指示しています。$uploadfile = null . null代わりにこれを試してください:

if(!empty($_POST)) {

    $directory = $_SERVER['DOCUMENT_ROOT'] . '/appphotos/';
    // $file = basename($_FILES['userfl']['upload.jpg']);
    $file = basename($_FILES['userfl']['name']);
    // $uploadfile = $uploaddir . $file;
    $uploadfile = $directory . $file;
    $randomPhotoID = md5(rand() * time());

    echo 'file=' . $file;

    //where the error resides
    if (move_uploaded_file($_FILES['userfl']['tmp_name'], $uploadfile)) {
        echo 'successful';
    } else {
        echo 'unsuccessful';
    }

} else {
    echo 'empty post data' ;
}
于 2013-12-20T23:08:45.103 に答える