2017-10-17 76 views
-2

我想通過向文件名添加日期/時間來防止重複的圖像文件上載。如何防止更改日期/時間php

我有一個圖像預覽,如果用戶上傳圖像文件,該文件將被髮送到具有日期時間戳的文件夾。當用戶填寫表單並將圖像和表單細節發佈到數據庫時,圖像文件上的圖像分鐘會發生變化。

我遇到的問題是當圖像文件發送到文件夾日期時間設置例如。 image 17 10 2017 10 18.jpg但是當我爲數據庫創建映像路徑時,分鐘會改變,例如。圖片17 10 2017 10 19.jpg。

1)文件使用Ajax ie發送到文件夾。 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 
    } 
+1

所以你生成一個AJAX文件上傳時間戳和表單提交後的第二個時間戳?是的,這兩個時間戳可能不同。您應該在AJAX文件上傳完成後將時間戳發送回瀏覽器,並將其存儲在隱藏的表單輸入中。並且不要再次生成時間戳使用存儲在隱藏輸入中的時間戳。這樣它就會一樣。 – Matey

+0

謝謝,我生成一個隨機數字,通過AJAX發送圖像,同時將相同的數字發送到隱藏的輸入。我不得不拆分Ajax上傳文件和表單上傳文件。 – ticktock

回答

0

一旦生成時間戳。如果您再次需要它,請將它發送到其他組件。

0

而不是時間戳或日期,使用文件散列來防止重複上傳。

請參閱下面的兩個PHP手冊:

相關問題