-1

PHP でファイルをアップロードできません。ファイルの場所をデータベースに保存する必要がありますが、うまくいきません。また、タイムスタンプ + ユーザー名と同じになるようにファイルの名前を変更したいと考えています。ユーザー名を変数に格納しています。

最も重要なことですが、ファイルの場所を DB に投稿するにはどうすればよいですか?

編集

現在、サーバー上のフォルダーにアップロードするファイルを取得していますが、ファイルの場所を文字列としてデータベースに保存することはできません。後でファイルを参照できるようにしたいのですが、後で使用するためにファイルの場所を保存する方法がわかりません。

$ext_img_2 = end(explode(".", $_FILES["img_2"]["name"]));
if ((($_FILES["img_2"]["type"] == "image/gif") || ($_FILES["img_2"]["type"] == "image/jpeg") || ($_FILES["img_2"]["type"] == "image/png") || ($_FILES["img_2"]["type"] == "image/pjpeg")) && ($_FILES["img_2"]["size"] < 6291456) && in_array($ext_img_2, $allowedExts))
{
    if ($_FILES["img_2"]["error"] > 0)
    {
        echo "Return Code: " . $_FILES["img_2"]["error"] . "<br>";
    }
    else
    {
        if (file_exists("AdImg2/" . $_FILES["img_2"]["name"]))
        {
            echo $_FILES["img_2"]["name"] . " already exists. " . "<br>";
        }
        else
        {
            move_uploaded_file($_FILES["img_2"]["tmp_name"], "AdImg2/" . $_FILES["img_2"]["name"]);
            mysql_query("INSERT INTO data (img_2) VALUES ('AdImg1/".$_FILES['img_1']['name']."')";
            echo "Stored in: " . "AdImg2/" . $_FILES["img_2"]["name"] . "<br>";
        }
    }
}
else
{
    echo "Invalid File" . "<br>";
}
4

1 に答える 1

0

アップロードするファイルには一意の名前 (uniqid http://php.net/manual/fr/function.uniqid.phpなどの関数を使用) を使用し、必要に応じて元のファイル拡張子を使用することをお勧めします。例えば ​​:

$name = uniqid() . '.' . pathinfo($filename, PATHINFO_EXTENSION);
$name = time() . '.' . pathinfo($filename, PATHINFO_EXTENSION); // For timestamp

次に、ツアー テストを実行して、次のことを行います。

$path = 'uploadedFilesDir/' . $name;
move_uploaded_file($_FILES["img_2"]["tmp_name"], $path);
mysql_query('INSERT INTO data(...) VALUES ("' . $path . '")');

それは簡単です(ディレクトリ権限に注意してください。phpはディレクトリに書き込めない場合があります)。

于 2013-02-15T13:33:30.987 に答える