我有一个表单,用户可以在其中上传 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>";
}
?>
Run Code Online (Sandbox Code Playgroud)
$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;
Run Code Online (Sandbox Code Playgroud)
在创建$targetfolder变量时,出于某种原因向其添加了基本名称。因此,如果该文件被调用something.jpg和目标文件夹是/a/b/c/你会得到/a/b/c/something.jpg的价值$targetfolder。
稍后在您的代码中,您再次添加自己的文件名:
if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder .$filename))
Run Code Online (Sandbox Code Playgroud)
所以我想如果你把$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;所有的东西都删除,你会很高兴的。