0

我正在用 PHP 将文件上传到服务器。现在我想将文件重命名为新名称,但我无法完成。提议的新文件名将由一个关联数组中的值和一个变量名组成。为了实现这一点,我做了以下代码,但无法获得新命名的文件。我的代码如下:

$test_pack_id  = md5(uniqid($this->hash_secret));


    if(!empty($test_pack_id )){
                  $package_image_file = $form_image_data['test_pack_image']['name'];

                  $nwName = rename($package_image_file,$form_data['test_pack_name'].$test_pack_id);  
                  echo $nwName; die;
                }

谁能帮助我如何在 PHP 中重命名文件?提前致谢。

4

6 回答 6

2

布尔重命名(字符串 $oldname ,字符串 $newname [,资源 $context ] )

注:旧称。oldname 中使用的包装器必须与 newname 中使用的包装器匹配。

成功时返回 TRUE,失败时返回 FALSE。

<?php
rename("old", "new");
?>

也检查此链接 http://www.codersmount.com/2011/07/smart-way-for-renaming-uploaded-files-using-php/

于 2013-06-10T05:45:44.583 回答
1

您应该在 $form_data 上执行 print_r 或 var_dump,因为我怀疑传递给“test_pack_name”的数据不正确并导致重命名失败。我还将包括 swapnesh 的建议,即添加一个条件if来报告重命名的成功或失败,以便为您提供额外的调试信息。

于 2015-06-21T21:37:29.440 回答
0

PHPrename();函数

rename ("123", "abc");
rename ("oldname", "newname");
于 2013-06-10T05:45:27.053 回答
0

您可以rename按照其他人的建议使用。或者只是简单地使用上传时间重命名文件。这是我通常做的。看一看:

//First separate the original file name from its extension
list($txt, $ext) = explode(".", $name);
//rename it with its timestamp.
$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;

希望这可以帮助。

于 2013-06-10T05:57:37.277 回答
0

PHPrename() 返回truefalse

所以你可以检查是否通过if语句

if(rename())
echo "Success";
else
echo "failure";
于 2013-06-10T05:50:06.697 回答
0

简单易行的方法

if( !rename($filePath, $newFileName) ) {

echo "File can't be renamed!";

}

else {

echo "File has been renamed!";

}

参考

于 2020-08-11T08:06:11.167 回答