2013-01-09 36 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()第二个参数选择新的文件名。