2012-01-10 37 views
3

我正在修改我的代碼以接受隨機生成的唯一標識符,以使用php uniqid函數替換名稱。我嘗試了一些方法,但沒有成功。在PHP中將文件名更改爲uniqid

move_uploaded_file($_FILES["file"]["tmp_name"], 
"upload/" . $_FILES["file"]["name"]); 
$ipath = "upload/"; 
$ipath .= $_FILES["file"]["name"]; 

有誰知道我該怎麼做到這一點?

編輯:我問在哪裏把uniqid函數,使文件與uniqid.extension存儲在我的服務器上的文件夾中。

+0

是你的問題關於如何生成唯一的文件名,或者將它放在'move_uploaded_file'調用中的位置? – bfavaretto 2012-01-10 21:24:16

+0

我在問在哪裏把uniqid函數。 – user981053 2012-01-10 21:25:49

+0

好了@Connun回答了你的問題 – bfavaretto 2012-01-10 21:29:54

回答

7
move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . uniqid()); 

,或者,如果你想保留的文件擴展名:

$fileInfo = pathinfo($_FILES["file"]["name"]); 

move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . uniqid() . '.' . $fileInfo['extension']); 

\\編輯:使用$ IPATH變量...

$fileInfo = pathinfo($_FILES["file"]["name"]); 
$ipath = "upload/" . uniqid() . '.' . $fileInfo['extension']; 
move_uploaded_file($_FILES["file"]["tmp_name"], $ipath); 
+0

編輯爲使用實際文件名而不是臨時文件名來檢索文件擴展名 – Connum 2012-01-10 21:38:58

+0

謝謝,那很好。 – user981053 2012-01-10 22:37:20

+0

你知道我可以如何設置ipath等於新的文件名嗎? – user981053 2012-01-10 22:44:21

1
$newName = md5_file($ipath); 

會生成文件內容的md5,應該是非常獨特的。

-2
$aaa = uniqid(); 
$Image_New_Name = $aaa."_".basename($_FILES["fileToUpload"]["name"]); 
$target_dir = "upload/".$Image_New_Name; 

if(isset($_POST['submit'])) { 

    //$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 

    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]) ." has been uploaded."; 
     echo "<br/>"; 
    } 

    $id  = $_POST['id']; 
    $fullname = $_POST['fullname']; 
    $password = $_POST['password']; 
    $email = $_POST['email']; 
    $gender = $_POST['gender']; 
    $about_me = $_POST['about_me']; 
    $state = $_POST['state']; 
    $country = $_POST['country']; 


    if($_FILES["fileToUpload"]["name"] != "") { 
     $image = $_FILES["fileToUpload"]["name"]; 
    } else { 
     $image='BlankFaceGraphic.jpg'; 
    } 

    $sql="insert into register(id,fullname,password,email,gender,about_me,state,country,image) 
         values 
    ('$id','$fullname','$password','$email','$gender','$about_me','$state','$country','$Image_New_Name')";