如何在PHP中重命名上载的文件?

如何在PHP中重命名上载的文件?,php,file-upload,file-rename,Php,File Upload,File Rename,我正在用PHP向服务器上传一个文件。现在我想将文件重命名为新名称,但无法完成。建议的新文件名将由一个关联数组的值和一个变量名组成。为了实现这一点,我执行了以下代码,但无法获取新命名的文件。我的代码如下: $test_pack_id = md5(uniqid($this->hash_secret)); if(!empty($test_pack_id )){ $package_image_file = $form_image_data['tes

我正在用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中重命名文件吗?提前感谢。

PHP
rename()功能

rename ("123", "abc");
rename ("oldname", "newname");
PHP
rename()功能

rename ("123", "abc");
rename ("oldname", "newname");
bool重命名(字符串$oldname,字符串$newname[,资源$context])

注: 老名字。oldname中使用的包装必须与newname中使用的包装匹配

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

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

也请检查此链接 布尔重命名(字符串$oldname,字符串$newname[,资源$context])

注: 老名字。oldname中使用的包装必须与newname中使用的包装匹配

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

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

也请检查此链接

PHP
rename()
返回
true
false

因此,您可以通过
if
语句检查

if(rename())
echo "Success";
else
echo "failure";
PHP
rename()
返回
true
false

因此,您可以通过
if
语句检查

if(rename())
echo "Success";
else
echo "failure";

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

//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;

希望这有帮助。

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

//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;

希望这能有所帮助。

您应该对$form\u数据执行print\r或var\u dump,因为我怀疑传递给“test\u pack\u name”的数据不正确,导致重命名失败。我还将包括swapnesh的建议,即在报告重命名成功或失败时加入条件if,以向您提供额外的调试信息。

您应该对$form\u数据进行打印或var\u转储,因为我怀疑传递给“test\u pack\u name”的数据不正确,并导致重命名失败。我还将包括swapnesh的建议,即加入一个条件if,以报告重命名的成功或失败,从而为您提供额外的调试信息。

简单易行的方法

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

echo "File can't be renamed!";

}

else {

echo "File has been renamed!";

}
简单易行的方法

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

echo "File can't be renamed!";

}

else {

echo "File has been renamed!";

}

您是在上传后重命名文件还是在上传之间重命名文件?@Orangepill:现在我在变量$package\u image\u file中获取文件名。我只想重命名那个文件。你能帮我吗?@phpLover Jayram下面有你的答案。你是在上传后重命名文件还是在上传之间重命名文件?@Orangepill:现在我在变量$package\u image\u file中获取文件名。我只想重命名那个文件。你能帮我一下吗?@phpLover Jayram在下面给出了你的答案。但是它没有返回任何东西。也许一开始没有任何东西需要重命名,这意味着在此之前存在问题,尝试(而不是重命名),只是回显变量以测试这是否是问题,但它没有返回任何东西。也许一开始没有任何东西需要重命名,这意味着在这之前有一个问题,尝试(而不是重命名),只是回显变量以测试这是否是问题您给定的链接对我真的很有用。但是你给出的答案只是PHP手册中的一个opy粘贴,请以后不要做这样的事情。你给出的链接对我非常有用。但您给出的答案只是PHP手册中的一个opy粘贴,请以后避免这样做。