繁体   English   中英

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

[英]php rename the uploaded file with extension

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

您好,如果我对您的理解正确,则在提取扩展程序信息时遇到问题。 您可以随时使用pathinfo

$extention = pathinfo("first.jpeg ",PATHINFO_EXTENSION);
$newName = "secound." . $extention ;
var_dump($newName);

输出量

string 'secound.jpg' (length=11)

基本上,您需要扩展上传的文件,

你必须先获得扩展名,你有文件

$_FILES["file"]["name"]

字符串位置“ strpos()”将获取文件的点

$idx = strpos($_FILES['file']['name'],'.');

点后必须通过文件扩展名;

$ext = substr($_FILES['file']['name'],$idx);

最后根据需要更改文件名,

$file_name = $titleA . $ext; 

使用move_uploaded_file时,您可以选择文件名,因此可以选择任何内容。

当您上传文件时,将其放置在带有临时名称的临时目录中,move_uploaded_file()允许您移动该文件,并且还需要设置文件名。

以下是我如何将文件扩展名从.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 />";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM