1

各ユーザーが複数の画像をアップロードできる Web サイトで作業しています。画像をアップロードしてフォルダーに保存することはできますが、画像を保存しているため、2 人の異なるユーザーが同じ画像名を持っていると問題が発生します。単一のフォルダー。情報を保存しているデータベースでは、シリアル番号が一意のキーです..シリアル番号を追加して画像の名前を変更したい. 一意にするために画像名を付けてください...助けてください..それを行う..

my form is as:-

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" /> </br><br/>
<input id="submit" type="submit" value="submit" />

そしてupload_file.phpは次のとおりです:-

require_once('dbconnect.inc.php');
$db_name="uploaddata";
$tbl_name="data";
$db_selected=mysql_select_db("$db_name")or die("cannot select DB");
if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] > 0))
 {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    $Image_name=$_FILES["file"]["name"];
    $Image_type=$_FILES["file"]["type"];
     //upload is the folder of storing images       
     if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
     $_SESSION['response'] = " already exists please give some different name ";
     header("Location: testimage.php");
      }
    else
      {

      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
             $login_data="INSERT INTO $tbl_name(Image_name,Image_type) VALUES('$Image_name','$Image_type')";

        $login_result=mysql_query($login_data) or die(mysql_error());
        header("Location: abc.php");
          }
    }
  }
4

1 に答える 1

3

move_uploaded_file 関数を使用して、宛先ファイルの名前を変更できます。

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $serial_number . '_' . $_FILES["file"]["name"] . );

こんな機能も使えます

bool rename ( string $oldname , string $newname [, resource $context ] );
于 2012-06-07T10:26:45.160 に答える