2013-01-09 67 views
0

文件我把這個代碼http://www.w3schools.com/php/php_file_upload.asp,我只是打約與它:隨機字符串重命名上傳

$allowedExts = array("jpg", "jpeg", "gif", "png"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/png") 
    || ($_FILES["file"]["type"] == "image/pjpeg")) 
    && ($_FILES["file"]["size"] < 20000) 
    && 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: " . "upload/" . $_FILES["file"]["name"]; 
     } 
    } 
} else { 
    echo "Invalid file"; 
} 

我不知道我怎麼會讓它創建一個隨機文件名時,它的上傳等等具有相同名稱的文件可以多次上傳。

+1

'mt_rand()','uniqid()',添加一個時間戳,散列文件的內容...有很多方法。 – ceejayoz

+0

歡迎來到Stack Overflow! w3schools是一個錯誤的和誤導性的網站。您不應該將其用作任何語言的參考。對於PHP,有[PHP手冊](http://php.net),對於JavaScript,有[Mozilla開發者網絡(或MDN)](https://developer.mozilla.org/)。請參閱http://w3fools.com以進一步瞭解爲什麼您不應該使用w3schools。 –

回答

0
$new_name_here = 'file_' . rand(0, 10000) . '.' . end(explode(".", $_FILES["file"]["name"])); 
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $new_name_here);` 

move_uploaded_file()第二個參數選擇新的文件名。