对于文件管理系统,我使用foreach循环来输出目录中的所有文件和文件夹。 现在我想通过表单重命名文件和文件夹。 我的代码如下所示:如何在foreach循环中输出文件时重命名文件
/* RENDER THE FILES */
foreach ($files as $file) {
.....
<td>
<?php
// FILENAME
if(is_dir($dir.'/'.$file)) {
echo '<div class="sfmfolder">'.$file.'</div><br />';
}
else {
echo '<div class="sfmfile">'.$file.'</div>';
}
?>
</td>
<td>
<?php
// RENAME
if($_POST['renamefile']) {
if(is_dir($dir.'/'.$file)){
rename($dir.'/'.$file, $dir.'/'.$_POST['rename']);
}
else {
rename($dir.'/'.$file, $dir.'/'.$_POST['rename'].'.'.$FileExtension);
}
}
?>
<form method="post" action="">
<input type="text" name="rename" />
<input type="submit" name="renamefile" value="go" />
</form>
</td>
我的问题是:重命名文件重命名所有其他文件还与名,包括文件夹。 如何实现只有正确的文件才会被重命名? 我知道这个问题是通过foreeach环
$dir.'/'.$file
输出的所有文件,给出了路径的文件或文件夹
$file
的文件或文件夹
此代码对路径攻击广泛开放。你想要加入保护。 – arkascha
oke但那不是我的问题。我怎样才能捕获一个文件,并只重命名该文件? –
不要使用循环? – jeroen