PHP: ファイルアップローダー

ファイルのアップロードで form では multipart/form-data で送信します。

アップロードファイルは $_FILES["インプット名"] で取得可能です。
$_FILES["インプット名"]["tmp_name"] で一時的に格納されているのでその名前を使ってファイル操作関数で格納できます。
事前にアップロードファイルを格納するディレクトリ files を作り、パーミッション 777 に設定しておいてください。

合わせてデータベースも用意すれば、立派なファイルアップローダーとなります。
ファイル名の重複を避けるため、index を設定するなどして、ディレクトリを切ったりファイル名は一旦借りで、データベースでは実ファイル名で管理したり検討します。

HTML: form.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>uploader</title>
</head>
<body>
  <form action="upload.php" method="post" enctype="multipart/form-data">
    <dl>
      <dt>
        ファイル:
      </dt>
      <dd>
        <input type="file" name="upfile" size="30">
      </dd>
    </dl>
    <input type="submit" value="アップロード">
  </form>
</body>
</html>

PHP: upload.php

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>uploader</title>
</head>
<body>
<p><?php
$input_name = "upfile";
if (is_uploaded_file($_FILES[$input_name]["tmp_name"])) {
  if (move_uploaded_file($_FILES[$input_name]["tmp_name"], "files/" . $_FILES[$input_name]["name"])) {
    chmod("files/" . $_FILES[$input_name]["name"], 0644);
    echo $_FILES[$input_name]["name"] . "をアップロードしました。";
  } else {
    echo "アップロードに失敗しました";
  }
} else {
  echo "ファイルを選択してください。";
}
?></p>
</body>
</html>