在上传php之前将文件重命名为特定名称

时间:2018-07-13 19:26:28

标签: php rename

我有一个表单,用户可以在其中上传jpeg图像,但是在将文件重命名为特定名称时遇到问题。 (我的代码不会删除旧名称,而是在结果的扩展示例后添加新名称:originalname.jpgnewname.jpg)

下面是我的img-upload-processor.php

<?php
$temp = explode('.',$_FILES['file']['name']);
$extension = end($temp);
$targetfolder = "image/";
$newname="newname";
$filename = $newname . '.' . $extension;
$targetfolder = $targetfolder   . basename( $_FILES['file']['name']) ;

$ok=1;

$file_type=$_FILES['file']['type'];

if ($file_type=="image/jpeg") {

    if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder .$filename))
    {

        echo "<span class='green'>New Logo  uploaded</span>.<br>";

    }
    else {

        echo "<span class='red'>Problem uploading file </span>.";

    }

}
else {

     echo "You may only upload <span class='red'> jpeg </span> images.<br>";

}
?>

1 个答案:

答案 0 :(得分:3)

$targetfolder = $targetfolder   . basename( $_FILES['file']['name']) ;

在创建$targetfolder变量时,出于某种原因要向其添加基本名称。因此,如果文件名为something.jpg,而目标文件夹为/a/b/c/,则将得到/a/b/c/something.jpg作为$targetfolder的值。

稍后在代码中再次添加您自己的文件名:

if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder .$filename))

因此,我认为如果一起删除$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;会很高兴。