我有一个PHP代码如下:
$titleA = $_POST["title"];
if (in_array($_FILES["file"]["type"], $valid_mime_types)) {
$destination = "bannerImages/" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], $destination); }
我想用$ titleA变量更改文件名。但扩展将是相同的。基本上,文件名将成为为标题写的内容。让我说,原始文件是first.jpeg第二个将是second.jpeg。
答案 0 :(得分:2)
您好,如果我理解正确您,您在提取扩展信息时遇到问题。你可以随时使用pathinfo
示例
$extention = pathinfo("first.jpeg ",PATHINFO_EXTENSION);
$newName = "secound." . $extention ;
var_dump($newName);
输出
string 'secound.jpg' (length=11)
答案 1 :(得分:1)
基本上你需要扩展上传的文件,
你必须先获得扩展,你有文件
$_FILES["file"]["name"]
字符串位置“strpos()”将获得文件的点点
$idx = strpos($_FILES['file']['name'],'.');
点后点,你必须通过;
获得文件扩展名$ext = substr($_FILES['file']['name'],$idx);
最后根据需要更改文件名,
$file_name = $titleA . $ext;
答案 2 :(得分:0)
使用move_uploaded_file时,你可以选择文件名,这样你就可以选择任何你想要的东西。
当你上传文件时,它被放入一个带有临时名称的临时目录,move_uploaded_file()允许你移动那个文件,并且你需要设置文件的名称。
答案 3 :(得分:0)
以下是我将文件扩展名从.png重命名为.jpg
的代码function replace_extension($filename, $new_extension) {
$info = pathinfo($filename);
$newname = $info['filename'] . '.' . $new_extension;
rename('/home/image/'.$filename, '/home/image/'.$newname);
return $newname;
}
$dir = '/home/image';
$files = scandir($dir);
//print_r($files);
foreach($files as $key => $file)
{
echo replace_extension($file, 'jpg');
echo "<br />";
}