簡體   English   中英

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

[英]How to rename an uploaded file in PHP?

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

bool 重命名(字符串 $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/

您應該對 $form_data 執行 print_r 或 var_dump,因為我懷疑傳遞給“test_pack_name”的數據不正確並導致重命名失敗。 我還將包括 swapnesh 的建議,即加入一個條件if來報告重命名的成功或失敗,以便為您提供額外的調試信息。

PHP rename(); 功能

rename ("123", "abc");
rename ("oldname", "newname");

PHP rename()返回truefalse

所以你可以通過if語句檢查

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

您可以按照其他人的建議使用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;

希望這可以幫助。

簡單易行的方法

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

echo "File can't be renamed!";

}

else {

echo "File has been renamed!";

}

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM