0

誰かがこれを理解するのを手伝ってくれるかどうか疑問に思っていました。PHPでユーザーディレクターに写真をアップロードできるようにしたいのですが、デフォルト名をavatar.whateverに変更したいです。これは私がこれまでに持っているコードで、わずかに変更された w3schools バージョンです。

<?php
session_start();

$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["avatar"]["name"]));
if ((($_FILES["avatar"]["type"] == "image/gif")
|| ($_FILES["avatar"]["type"] == "image/jpeg")
|| ($_FILES["avatar"]["type"] == "image/jpg")
|| ($_FILES["avatar"]["type"] == "image/pjpeg")
|| ($_FILES["avatar"]["type"] == "image/x-png")
|| ($_FILES["avatar"]["type"] == "image/png"))
&& ($_FILES["avatar"]["size"] < 100000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["avatar"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["avatar"]["error"] . "<br \>";
    }
  else
    {
    echo "Upload: " . $_FILES["avatar"]["name"] . "<br>";
    echo "Type: " . $_FILES["avatar"]["type"] . "<br>";
    echo "Size: " . ($_FILES["avatar"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["avatar"]["tmp_name"] . "<br>";

    $home_dir = "users/" . $_SESSION["user"] . "/";

    if (file_exists($home_dir . $_FILES["avatar"]["name"]))
      {
      echo $_FILES["avatar"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["avatar"]["tmp_name"],$home_dir . $_FILES["avatar"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["avatar"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

フォーム セクションは適切に機能し、ファイルが既に存在するかどうかを確認する if ステートメントを削除し、それほど出力しないようにしますが、定義済みのファイル名を設定する方法を誰かが教えてくれます。ユーザーは画像ファイルを選択して、ディレクトリにアップロードできます。ありがとうございました

4

2 に答える 2

0

この線:

move_uploaded_file($_FILES["avatar"]["tmp_name"],$home_dir . $_FILES["avatar"]["name"]);

2 番目のパラメーターを使用してファイルの名前を変更します。

move_uploaded_file($_FILES["avatar"]["tmp_name"],"/path/to/image_predefined_name.jpg");

image_predefined_name.jpg という名前で保存します。

于 2013-06-10T17:23:11.553 に答える
0

関数 (コードのmove_uploaded_files()最後) は、ファイルの一時的な場所と名前、および目的の場所と名前の 2 つのパラメーターを受け入れます。現在、あなたはこれをやっています:

 move_uploaded_file($_FILES["avatar"]["tmp_name"],$home_dir . $_FILES["avatar"]["name"]);
 echo "Stored in: " . "upload/" . $_FILES["avatar"]["name"];

名前$_FILES["avatar"]["name"](ユーザーのファイル名)でファイルを保存します。それを希望の名前に置き換えるだけです: $home_dir . "the name i want.whatever".

于 2013-06-10T17:24:38.340 に答える