ファイル名に日付/時刻を追加することで、重複した画像ファイルのアップロードを防止します。日付/時刻がPHPに変わるのを防ぐ方法
私はイメージプレビューを持っており、ユーザーがイメージファイルをアップロードすると、そのファイルは日付タイムスタンプのあるフォルダに送られます。ユーザーがフォームに記入してイメージとフォームの詳細をデータベースにポストすると、イメージファイルにイメージ分が変わります。
問題は、画像ファイルがフォルダに送信され、日付時刻が設定されている場合です。 image 17 10 2017 10 18.jpgしかし、データベースのイメージパスを作成すると分が変わります。画像17 10 2017 10 19.jpg。
1)Ajaxを使用してフォルダに送信されたファイル。 filename.date.extension
2)書式設定後にデータベースに送信されるファイルパス。ファイルパス/ filename.date.extension
日付/時刻が1と一致していません)2に等しくなるようになっている)
<?php
// Uploaded file sent via AJAX
$mainImg = $_FILES['mainImg']['name'];
$ext = pathinfo($mainImg, PATHINFO_EXTENSION);
$justname = basename($mainImg,".$ext");
// Prevent duplicate
$pd = date(" d m y H i ");
// 6)Rename the main Image
$dateAdded = $justname.$pd.".".$ext;
FILE IS SENT TO THE FOLDER THEN WHEN FORM IS FILLED OUT AND POSTED ALL
INFO GOES TO DATABASE...
if (isset($_POST['submit'])){
$directory = "Images/";
$filetodatabase = $directory.$dateAdded;
//CONNECT AND INSERT DATA INTO DATABASE USING MYSQL
}
のsha1ハッシュを計算しますAJAXファイルのアップロード時のタイムスタンプとフォーム提出時の2番目のタイムスタンプはい、これらの2つのタイムスタンプは異なる場合があります。 AJAXファイルのアップロード完了時にタイムスタンプをブラウザに送り返し、隠しフォーム入力に保存してください。もう一度タイムスタンプを生成しないでください。隠し入力に格納されているものを使用してください。このようにして、同じことになります。 – Matey
ありがとう、私は、乱数を生成し、画像と共にAJAX経由で送信し、同時に隠れた入力に同じ番号を送った。私は、Ajaxのアップロードファイルとフォームアップロードファイルを分割しなければなりませんでした。 – ticktock