2014-02-28 41 views
-2

所以標題不完全清楚,我的問題,我使用的代碼重命名目錄中的文件存在於服務器中問題是我必須使用HTML表單和PHP來更新文件名,我想這樣做:每個文件上都會有一個重命名選項,當我點擊彈出的選項框時,我必須輸入文件的新名稱並保存它,任何幫助將不勝感激。 (反對投票之前思考的問題。)php從目錄更新文件名

的代碼,我使用更新的文件名

<?php 
include("configuration.php"); 
$target = $_POST['filename']; 
$newName = $_POST['newfilename']; 
$actfoler = $_REQUEST['folder']; 
$file = "files/users/"; 
$new ="files/users/"; 
$renameResult = rename($file, $new); 
// Evaluate the value returned from the function if needed 
if ($renameResult == true) { 
    echo $file . " is now named " . $new; 
} else { 
    echo "Could not rename that file"; 
} 
header("Location:".$_SERVER["HTTP_REFERER"]); 
?> 

回答

1

嘗試改變這些行:

$file = "uploads/$loggedInUser->username$actfolder/$target"; 
$new ="uploads/$loggedInUser->username$actfolder/$newName"; 

要:

$file = "uploads/{$loggedInUser->username}{$actfolder}/{$target}"; 
$new ="uploads/{$loggedInUser->username}{$actfolder}/{$newName}"; 

解釋原因: 您在字符串中使用變量,這意味着您需要告訴PHP變量結束的地方。特別是在引用對象或數組時,以及在將變量放在一起時。我猜PHP評估你的原始線路uploads/[Object]->usernamePizza/newname

+0

我想你還沒有明白這個問題,我的重命名功能正在工作,但我想每個文件的重命名選項,當我點擊與舊名稱的選項框彈出,然後我會用新名稱替換它,並保存它。 – anmo

+0

哦,那麼如果你想要html文件,你必須嘗試做一些事情,當你真的遇到問題時回到我們身邊。 –

+0

@Loïc我只想要在每個文件上重命名的選項,我將點擊該選項並輸入文件的新名稱並保存它, – anmo

0

我不認爲你可以像你這樣調用字符串的對象屬性。

嘗試更換這些線路:

$file = "uploads/".$loggedInUser->username."$actfolder/$target"; 
$new ="uploads/".$loggedInUser->username."$actfolder/$newName"; 

你可能想呼應$file$new確認路徑是很好的建立。

在附註中,我建議真正檢查條目,因爲此代碼顯然可能導致重大安全問題。