php从目录更新文件名

php从目录更新文件名,php,forms,directory,rename,Php,Forms,Directory,Rename,所以标题不是很清楚,我的问题是,我正在使用代码从服务器中的目录重命名文件问题是我必须使用HTML表单和php更新文件名,我想这样做:将有一个选项对每个文件进行重命名,当我点击选项框弹出,我必须键入文件的新名称,并保存它,任何帮助将不胜感激。(在否决投票之前,先考虑一下这个问题。) 我用来更新文件名的代码 <?php include("configuration.php"); $target = $_POST['filename']; $newName = $_POST['newfilen

所以标题不是很清楚,我的问题是,我正在使用代码从服务器中的目录重命名文件问题是我必须使用HTML表单和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"]);
?>

尝试更改以下行:

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

解释原因:
您正在字符串中使用变量,这意味着您需要告诉PHP变量的结束位置。尤其是在引用对象或数组时,以及在将变量彼此相邻放置时。我猜PHP将您的原始行计算为
uploads/[Object]->usernamespizza/newname

,我不认为您可以像这样在字符串中调用对象属性

请尝试替换这些行:

$file = "uploads/".$loggedInUser->username."$actfolder/$target";
$new ="uploads/".$loggedInUser->username."$actfolder/$newName";
您可以考虑回显
$file
$new
以确认路径构建得很好


另一方面,我建议您真正检查条目,因为此代码显然会导致重大安全问题。

我想您还没有理解这个问题;我的重命名功能正在运行,但我希望每个文件都有重命名选项,当我用旧名称单击选项框弹出窗口时,我将用新名称替换它并保存它。哦,如果你想要html文件,你必须尝试做些什么,当你真的遇到问题时,请回来找我们。@Loïc我只想在每个文件上选择重命名选项,我将单击该选项并为文件键入新名称并保存它,这句“我想这样做:…”应该是绝对免费的。这意味着(在字里行间)“我希望你为我编写这个…”-显然,需要一个循环来遍历整个文件夹,嗅出文件并添加重命名功能;大活儿。询问OP他/她是否准备支付您小时工资。;-)我只是想知道做这件事的最好方法是什么,而不是整个代码。
$file = "uploads/".$loggedInUser->username."$actfolder/$target";
$new ="uploads/".$loggedInUser->username."$actfolder/$newName";