php使用扩展名重命名上传的文件

时间:2012-09-25 14:32:18

标签: php file-io

我有一个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。

4 个答案:

答案 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 />";
}