2015-05-24 76 views
1

我擁有PHP代碼僅用於圖片上傳器的代碼。更改PHP5文件上傳器的文件名

<?php 
    $target_dir = "cdn/uploads/"; 
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
    $file_name = basename($_FILES["fileToUpload"]["name"]); 
    $uploadOk = 1; 
    $username = $_SESSION['user_name']; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    // Check if image file is a actual image or fake image 
    if(isset($_POST["submit"])) { 
     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
     if($check !== false) { 
      echo "File is an image - " . $check["mime"] . "."; 
      $uploadOk = 1; 
     } else { 
      echo "File is not an image."; 
      $uploadOk = 0; 
     } 
    } 
    // Check if file already exists 
    if (file_exists($target_file)) { 
     echo "Sorry, file already exists."; 
     $uploadOk = 0; 
    } 
    // Check file size 
    if ($_FILES["fileToUpload"]["size"] > 500000) { 
     echo "Sorry, your file is too large."; 
     $uploadOk = 0; 
    } 
    // Allow certain file formats 
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
    && $imageFileType != "gif") { 
     echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
     $uploadOk = 0; 
    } 
    // Check if $uploadOk is set to 0 by an error 
    if ($uploadOk == 0) { 
     echo "Sorry, your file was not uploaded."; 
    // if everything is ok, try to upload file 
    } else { 
     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
      echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
     } else { 
      echo "Sorry, there was an error uploading your file."; 
     } 
    } 
    ?> 

的問題是iPhone上的形象都被命名爲image.jpeg所以當你嘗試上傳一張圖片,它會出來的話稱它已經上傳。

我需要一個PHP代碼,它會在文件上傳之前重命名文件。我搜索了互聯網,但沒有任何工作。請幫忙。

UPDATE:

我嘗試使用代碼How to rename uploaded file before saving it into a directory?但變量是不一樣的,有人可以幫我解決這個問題,使他們符合我的變量。

$temp = explode(".",$_FILES["file"]["name"]); 
$newfilename = rand(1,99999) . '.' .end($temp); 
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename; 
+1

的可能重複[如何將其保存到一個目錄之前重命名上傳的文件?(http://stackoverflow.com/questions/18705639/how-to-rename-uploaded-file-before - 保存到一個目錄) – Federkun

+0

@Leggendario,不適合我 –

回答

0
<?php 
    $target_dir = "cdn/uploads/"; 
    $ext = substr(strrchr($_FILES["fileToUpload"]["name"], '.'), 1); // extension 
    $file_name = md5(time().uniqid()) . '.' .$ext; // unique filename 
    $target_file = $target_dir . $file_name; 
?> 
+0

非常感謝你:) –

+0

很高興幫助。請標記爲已回答。 – Brian