とりあえずの備忘録

主にパソコンやインターネットに関するメモ

PHP ファイルをアップロードする

php.iniを編集してファイルアップロードを可能にする

file_uploads = On

他に次のような設定項目がある。

  • upload_tmp_dir : 一時アップロードディレクトリ
  • upload_max_filesize : 上限ファイルサイズ

アップロード用フォーム作成

「HTML部分」アップロード用フォーム

<form action="myupload.php" enctype="multipart/form-data" method="POST">
 <input type="hidden" name="MAX_FILE_SIZE" value="1024000">
 <input type="file" name="filez">
 <input type="submit" value="アップロードする">
</form>

「PHP部分」アップロード処理

//アップロード失敗
if ($_FILES['filez']['error']!=UPLOAD_ERR_OK) exit();

//ファイルサイズ制限越え
if ($_FILES['filez']['size']>1024000) exit();

//ファイルの移動先
$upload_file = '/var/www/html/' . $_FILES['filez']['name'];

//ファイル移動
if (move_upload_file($_FILES['filez']['tmp_name'], $upload_file)) {
 echo 'アップロード成功';
} else {
 echo 'アップロード失敗';
}

フォーム内にMAX_FILE_SIZEを用意するとサイズチェックを行う。単位はバイト。
アップロード情報は、$_FILES['フォーム名']['キー']でアクセス出来る。
アップロードしたファイルは、$_FILES['フォーム名']['tmp_name']に一時的に保存されるので、move_upload_file()関数で移動する。