5

次のコードを使用して、アップロード プロセス中に画像ファイルの名前をその他の名前に変更する方法を誰かが説明してくれませんか?

これが私が取り組んでいるものです。

アップローダー.php

<?php
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php");
$dataType = mysql_real_escape_string($_POST["dataType"]);
$title = mysql_real_escape_string($_POST["title"]);
$fileName = basename($_FILES["image"]["name"]);
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/".$fileName);
if (file_exists($target_path))
{
    echo "An image with that file name already exists.";
}
elseif (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path))
{
    // The file is in the images/gallery folder. Insert record into database by
    // executing the following query:
     $sql="INSERT INTO images (data_type, title, file_name)"."VALUES('$dataType','$title','$fileName')";
     $retval = mysql_query($sql);

    echo "The image was successfully uploaded and added to the gallery :) <a href='index.php'>Add another image</a>";


}
else
{
    echo "There was an error uploading the file, please try again!";
}
?>

次に、画像をギャラリーにアップロードするためのコードを次に示します。


<form enctype="multipart/form-data" action="uploader.php" method="POST">


        Category: <select class="text" name="dataType">
        <option value="treeremoval" selected="selected">treeremoval</option>
        <option value="treetrimming" >treetrimming</option>
        <option value="treebracing" >treebracing</option>
        <option value="stumpgrinding" >stumpgrinding</option>
        <option value="firewood" >firewood</option>
        <option value="cleanup" >cleanup</option>
        </select><br />
<br />




    Caption: <input type="text" name="title"><br />
<br />

    Image to upload: <input type="file" name="image"><br />
<br />




    <input type="submit" value="Upload">
</form>

私はphpとmysqlを使用するのが初めてなので、助けていただければ幸いです。他にもいくつか質問がありますが、一度に 1 つずつ質問する必要があると思います。=)

ありがとう!

4

5 に答える 5

5

私はこのようなことを試してみます。一意のIDを作成し、ファイルの拡張子を追加します。その名前が存在する場合は、存在しないものがあるまでループしてから、ファイルを移動します。

<?php
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php");

$dataType = mysql_real_escape_string($_POST["dataType"]);
$title = mysql_real_escape_string($_POST["title"]);

$fileData = pathinfo(basename($_FILES["image"]["name"]));

$fileName = uniqid() . '.' . $fileData['extension'];

$target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName);

while(file_exists($target_path))
{
    $fileName = uniqid() . '.' . $fileData['extension'];
    $target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName);
}

if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path))
{
    // The file is in the images/gallery folder. Insert record into database by
    // executing the following query:
     $sql="INSERT INTO images (data_type, title, file_name)"."VALUES('$dataType','$title','$fileName')";
     $retval = mysql_query($sql);

    echo "The image was successfully uploaded and added to the gallery :) <a href='index.php'>Add another image</a>";


}
else
{
    echo "There was an error uploading the file, please try again!";
}

?>

于 2013-07-11T20:45:23.203 に答える