2013-05-31 105 views
-2

我使用這個代碼:PHP重命名照片隨機

<?php 

$ran = rand() ; 
$ran2 = $ran."."; 

$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg") 
|| ($_FILES["file"]["type"] == "image/x-png") 
|| ($_FILES["file"]["type"] == "image/png")) 
&& ($_FILES["file"]["size"] < 2000000) 
&& in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 

    if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "filer.SITEHERE.com/upload/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file or service down"; 
    echo "It must be an image to be uploaded."; 
    } 
?> 

有沒有什麼辦法可以讓RAN2是文件名,而不是原來的名字? 對不起,我是PHP的初學者,找不到可行的東西。我希望主要依靠這個腳本或至少使它成爲可以只上傳圖像達到一定大小的圖像。

編輯:刪除了網站名稱。

+0

輝煌,你從W3Schools的把這個代碼直和編輯,最後的錯誤輸出,無想知道你不知道該怎麼辦 – user2406160

回答

1

您沒有使用$ran2可言。按照瑞安的例子,但增加$extension,因爲它看起來像你必須準備好要追加..

所以:

move_uploaded_file($_FILES["file"]["tmp_name"], "/upload/" . $ran2 . $extension); 
+0

謝謝你的回答。我調整了一下,現在它告訴你隨機的名字而不是舊的文件名。我想這是我嘗試PHP時發生的事情。 –

0

第二個參數只是更改爲move_uploaded_file,我也看到你不添加一個擴展,所以這應該添加它還有:

// Don't forget to add the extension 
$extension = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION); 
move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . $ran2 . $extension);