関数 move_uploaded_file

関数 move_uploaded_file は、アップロードされたファイルを一時ディレクトリから指定した場所へ移動します。最初のパラメータとして一時ファイル名を、2番目のパラメータとして保存先のパスを受け取ります。

構文

phpmove_uploaded_file(string $from, string $to): bool

例

アップロードされたファイルをuploadsフォルダに移動する例:

php<?php
  $temp = $_FILES['file']['tmp_name'];
  $name = $_FILES['file']['name'];
  
  if (move_uploaded_file($temp, 'uploads/' . $name)) {
    echo 'ファイルのアップロードに成功しました';
  } else {
    echo 'アップロードに失敗しました';
  }
?>

例

移動前にファイルのアップロードが成功したかどうかを確認する例:

php<?php
  $temp = $_FILES['file']['tmp_name'];
  $name = $_FILES['file']['name'];
  
  if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $res = move_uploaded_file($temp, 'files/' . uniqid() . '_' . $name);
    echo $res ? '成功' : 'エラー';
  } else {
    echo 'アップロードエラー: ' . $_FILES['file']['error'];
  }
?>

例

移動時に一意のファイル名を生成する例:

php<?php
  $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
  $newName = 'userfile_' . time() . '.' . $ext;
  $res = move_uploaded_file($_FILES['file']['tmp_name'], 'storage/' . $newName);
  var_dump($res);
?>

関連項目

  • ファイルをコピーする関数 copy
  • ファイル名を変更する関数 rename
  • アップロードされたファイルかどうかを確認する関数 is_uploaded_file