2017-06-16 80 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简单。 –