2017-06-16 73 views
-1

你好我想通過給它添加3個隨機字母來改變文件名。1改變文件名稱而不接觸擴展名

$target_dir = "/var/www/html/uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$kiekis = htmlspecialchars($_POST['laikotarpis']); 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
$rpavadinimas = htmlspecialchars($_POST['rpavadinimas']); 
$datanuo = $datanuo = date("Y-m-d"); 
$time = strtotime($datanuo); 
$dataiki = date("Y-m-d", strtotime("+$kiekis month", $time)); 
$Failo_vardas = htmlspecialchars(basename($_FILES["fileToUpload"]["name"])); 

if ($imageFileType != "mp4" && $imageFileType != "avi" && $imageFileType != "mov" && $imageFileType != "3gp" && $imageFileType != "mpeg"){ 
    $error_message = "<span style='color:red';><b>Failo ". basename($_FILES["fileToUpload"]["name"]). " Netinkamas failo formatas</b></span>"; 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){ 
     echo "success"; 
    } 
} 

作爲例子,我要上傳的文件「test.mp4」,但我想將其保存爲「testA2Q.mp4」 任何解決方案如何解決呢?

編輯:我想將它改變名稱保存以及

+1

https://stackoverflow.com/questions/3509333/how-to-upload-save-files-with-desired-name可能的複製。 – wolfsgang

+0

順便說一句,你提到你想添加3個字母。但是,例如,您已添加4. –

回答

0

你可以做這樣的事情

$info = pathinfo($_FILES['userFile']['name']); 
    $ext = $info['extension']; // get the extension of the file 
    $newname = "newname.".rand(0,999).$ext; 
    $target = 'images/'.$newname; 
    move_uploaded_file($_FILES['userFile']['tmp_name'], $target); 

這裏

$newname = "newname.".rand(0,999).$ext; 

rand(0,999)將一個名字與三個隨機數字在0-999之間。 我這件事會幫助你。

您可以在官方文檔中查看有關pathinforand的詳細信息。

-1

嘗試這種方式

$target_dir = "/var/www/html/uploads/"; 

$old_file = 'test.mp4'; //sample 
$new_name = 'testA2Q'; //sample 
$type = substr(strrchr($old_file, "."), 1); 
$new_file_name = $new_name.'.'.$type; 

rename ($target_dir.$old_file, $target_dir.$new_file_name); //rename a file 
+0

topicstarter說:「您好,我想通過向其添加3個隨機字母來更改文件名。」你的代碼中的A2Q是硬編碼的,而不是隨機的 –

+0

這是一個例子,用戶可以得到這個想法。這就是爲什麼我使用'test.mp4'和'testA2Q'。 Preety簡單。 –