0

紛失したペットの情報を電子メールに送信するフォーム メーラーがあります。迷子になったペットの画像を送る画像アップロード機能もご用意しております。従業員 (長い間いなくなった) が私たちのためにそれをコーディングしました。「image.jpg」のような同じファイル名 (おそらくカメラから直接) で複数の画像がアップロードされることがあります。そのため、リストに追加する前に前の画像が上書きされます。既存の画像アップロード コードを変更する際の助けをいただければ幸いです。 (下) 時刻と日付の接尾辞を付けて重複ファイルの名前を変更します。これは私たちが持っているもので可能ですか?残念ながら、私たちはコーダーではないので、他の人よりも詳細に依存している可能性があります.

どうもありがとう!

/* Set upload directory */
$uploadDir = "/home/hsoet/public_html/uploads/attach";
$baseUrl = "http://www.petsfurpeople.org/uploads/attach";
$uploadFile = "";

/* Setup acceptable attachment types */
$acceptableTypes = array( 
    "image/gif", 
    "image/jpeg",
    "image/jpg"
);

/* There was a file uplaoded but an error occured.. */
if( $_FILES["attach"]["error"] > 0 && $_FILES["attach"]["error"] != UPLOAD_ERR_NO_FILE ) {
    echo "<h4>Error uploading attachment (file size too large possibly!)</h4>";
    echo "<a href='javascript:history.back(1);'>Back</a>";
    exit();
}

/* File was uploaded, handle... */
else if( $_FILES["attach"]["error"] == UPLOAD_ERR_OK ) {

    /* Check to make sure that the file is an acceptable type */
    if( !in_array( $_FILES["attach"]["type"], $acceptableTypes ) ) {
        echo "<h4>Unacceptable attachment type.  Please try again!</h4>";
        echo "<a href='javascript:history.back(1);'>Back</a>";
        exit();
    }

    $uploadFile = $uploadDir . "/" . basename( $_FILES["attach"]["name"] );
    $attachUrl = $baseUrl . "/" . basename( $_FILES["attach"]["name"] );

    if( !move_uploaded_file( $_FILES["attach"]["tmp_name"], $uploadFile ) ) {
        echo "<h4>Error uploading attachment.  Please try again!</h4>";
        echo "<a href='javascript:history.back(1);'>Back</a>";
        exit();
    }
}

ファイルへのリンクが、他のフォーム情報とともに電子メールで送信されます。

    elseif (mail($toemail,"HSOET Lost Pet Form Submission","\nEmail:     ".$fromemail."\nName: ".$name."\nPhone: ".$phone."\nType of Animal: ".$type."\nArea Lost: ".$area."\nDate Lost: ".$date."\nBreed: ".$breed."\nSex: ".$sex."\nAltered: ".$altered."\nCollar Color: ".$collarcolor."\nTag Number: ".$tag."\nPet's Name: ".$petname."\nDescription: ".stripslashes($description)."\nFile Attachment: ".$attachUrl."\nIP Address: ".$pfw_ip."",$headers2)) {
  mail($fromemail,"HSOET Lost Pet Form Submission Confirmation",$c_message,$headers);

      echo "<meta http-equiv=\"Refresh\" content=\"0;url=".$c_url."\">";

      echo "<h4>If you are not redirected automatically, <a href=\"".$c_url."\">click here</a>.";

    } else {

      echo "<h4>Can't send email to $email</h4>";

    }
4

1 に答える 1

0

手っ取り早い修正方法は、すべてのイメージ名にタイムスタンプを追加することです。次の行を変更するだけです。

$uploadFile = $uploadDir . "/" . basename( $_FILES["attach"]["name"] );

に:

$uploadFile = $uploadDir . "/" . `date + "%d%m%y_%H%M%S"` . basename( $_FILES["attach"]["name"] );

これは、Linux でアプリを実行していることを前提としています。

于 2013-11-13T13:58:28.253 に答える