【问题标题】:rename file to specific name before upload php在上传php之前将文件重命名为特定名称
【发布时间】:2018-12-22 05:18:50
【问题描述】:

我有一个表单,用户可以在其中上传 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>";

}
?>

【问题讨论】:

  • 这很琐碎,但我建议将目标目录称为“images”而不是“image”。

标签: php rename


【解决方案1】:
$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']) ;全部删除的话你会很高兴的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2014-04-02
    • 2012-05-04
    • 2018-09-13
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多