人艰不拆8
2017-02-21 16:27
/**检查文件名的合法性
 * @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() 这个函数返回的是文件目录的名字 不是返回文件前面的路径
WEB在线文件管理器
36250 学习 · 346 问题
相似问题