« PHP:ftruncate()関数 | メイン | PHP:tmpfile()関数 »

2007年01月09日

PHP:is_uploaded_file()関数・move_uploaded_file()関数

is_uploaded_file()関数
アップロードファイルかどうかをチェックします。

move_uploaded_file()関数
アップロードされたファイルを指定したパスに移動します。

※指定したファイルが有効なアップロードファイルでない場合、または上書き許可されていない重複したファイル名でアップした場合、移動先のディレクトリのパーミッションが書き込み許可されていない場合など、何らかの理由で移動できない場合にはFALSEを返します。

■ PHPでファイルをアップロードする方法のサンプル
※ファイルの文字コードはEUCで保存してください。

<?php

//アップロードした場合の処理
if($_POST['mode'] == 'upload'){

    if(!is_uploaded_file($_FILES['img1']['tmp_name'])){
        die("エラー:アップロードされたデータがファイルではありません。");
    }

    if($_FILES['img1']['error']){
        die("エラー:{$_FILES['img1']['error']}");
    }

    $filePath = '/var/www/htdocs/images/'.$_FILES['img1']['name'];  //ファイルの移動先を指定

    $res = move_uploaded_file($_FILES['img1']['tmp_name'], $filePath);

    if(!$res){
        die("エラー:ファイルの移動に失敗しました。");
    }

    $result = "アップロードが正常に完了しました。";
}

print <<<EOF
<html>
<head>
<title>ファイルアップロード</title>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>

<body>
$result
<form name="uploadForm" enctype="multipart/form-data" action="{$_SERVER['PHP_SELF']}" method="post">
<input name="img1" type="file"><br>
<br>
<input type="hidden" name="mode" value="upload">
<input type="submit" name="submit" value="アップロード">
</form>
</body>
</html>
EOF;

?>

投稿者 wing : 2007年01月09日 23:33

コメント