2007年9月16日日曜日

PHP FileUpload ファイルアップロード

意外と悩みました。
インターネット上で掲載されているサンプルコードは、古いものばかりでそのままでは動作しませんでした。結局のところPHP本家の『ファイルアップロードの処理』を見てコーディングしたほうがよかったです。
http://jp2.php.net/manual/ja/features.file-upload.php

php.ini のupload_tmp_dir で指定したディレクトリ、ここでは"/var/php/"のパーミッションに注意
してください。このサーバーFreeBSD5.2なのですが、

drwxrwxr-x 2 daemon wheel 512 Sep 16 07:12 php

のようにすることでエラーなく動作しました。
ふぅ。。。


fileupload.php
------------------------------------------------------------------
File Edit Options Buffers Tools Help
<html>
<body>
<?php
$fFile = $_FILES["upfile"]["name"];
echo date(DATE_ATOM);
?>

<br>
<br>

FileUpload:<br>
<form method="POST" enctype="multipart/form-data" action="fileupload.php">
<input type="hidden" NAME="MAX_FILE_SIZE" SIZE="65536">
File:<input type="file" name="upfile" size=45 value=<?php echo $fFile ?>><br>
<input type="submit" value="Upload"><br>
</form>


<?php

echo "File:".$fFile."<br>\n";

$updir = "/var/php/";
$filename = $updir.basename($_FILES["upfile"]["name"]);

if(move_uploaded_file($_FILES["upfile"]["tmp_name"],$filename))
{
print("temp_name:".$_FILES["upfile"]["tmp_name"]."<br>\n");
print("<b>$filename</b> uploaded<br>\n");
}
else
{
print("Upload failed");
print($_FILES["upfile"]["error"]);
}

?>
OK!<br>

</body>
</html>
------------------------------------------------------------------

0 件のコメント: