/**检查文件名的合法性 * @param string $filename * @return boolean */ function checkFilename($filename){ $pattern="/[\/,\*,<>,\?\|]/"; if(preg_match($pattern,$filename)){ return false; }else { return true; } } /**重命名文件名 * @param string $oldname * @param string $newname * @return string */ function renameFile($oldname, $newname) { //echo $oldname, $newname; // 验证文件名是否合法 if (checkFilename($newname)) { // 检测当前目录下是否存在同名文件 $path = dirname($oldname); if (! file_exists($path ."/" . $newname)) { // 进行重命名 if (rename($oldname, $path . "/" . $newname)) { return "重命名成功"; } else { return "重命名失败"; } } else { return "存在同名文件,请重新命名"; } } else { return "非法文件名"; } } ?>
$path = "file";
$act = $_REQUEST['act'];
$filename = $_REQUEST['filename'];
else
if ($act == "renameFile") {
// 完成重命名
$str = <<<XGG
<form action="index.php?act=doRename" method="post">
请填写新的文件名:<input type="text" name="newname" placeholder="重命名" />
<input type='hidden' name='fileanme' value='{$filename}' />
<input type="submit" value="重命名" />
</form>
XGG;
echo $str;
} else if ($act == "doRename") {
// 实现重命名的操作
$newname = $_REQUEST['newname'];
$mes=renameFile($filename, $newname);
alertMes($mes, $redirect);
}
<a href="index.php?act=renameFile&filename=<?php echo $p;?>"><img alt="" src="images/rename.png" title="重命名" /></a>
input type='hidden' name='fileanme' value='{$filename}' />
隐藏域的这个name打错了,是 filename,不是fileanme
...$path=dirname($oldname); 这里dirname() 这个函数返回的是文件目录的名字 不是返回文件前面的路径