对于文件管理系统,我使用此变量,其中是我用于scandir的文件夹:
$dir = 'uploads/sfm/'.$UserID';
用户可以在 $ UserID 文件夹中创建自己的目录。
所有文件都是通过foreach输出的。 要捕获“上传”文件夹形式的路径,我使用:
$Dirname = dirname($dir);
$Basename = basename($dir);
假设我的用户在自己的文件夹中创建了一个文件夹“test”。 我抓住了这条道路:
$Dirname.'/'.$Basename.'/'.$file;
当我回应这个时,我得到:
uploads/sfm/5/test
现在我想通过POST更改$ dir: 在输出的每个文件夹下面我创建了一个表单,当提交时,dir应该改变。
我现在这样做:
<form class="chdir" action="" method="post">
<input class="hidden" name="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>" />
<input type="submit" name="chdir" value="open dir" />
</form>
我试着像这样改变目录:
$dir = 'uploads/sfm/'.$UserID;
if($_POST['chdir']) {
$NewDirectory = $_POST["$Dirname.'/'.$Basename.'/'.$file;"];
$dir = $NewDirectory;
//echo $dir;
}
我知道语法错误但我希望你理解我想要实现的目标: $ dir 现在应该包含一个新值;所以不要这样:
$dir = 'uploads/sfm/'.$UserID';
它现在应该包含这个:
$dir = 'uploads/sfm/'.$UserID.'/test';
实现这一目标的正确方法是什么?
答案 0 :(得分:2)
由于html中没有class="hidden"
类型,您需要将新目录分配给value of hidden field
并将name
添加到其中
<form class="chdir" action="" method="post">
<input type="hidden" name="new_directory" value="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>"/>
<input type="submit" name="chdir" value="open dir" />
</form>
获取新目录
$dir = 'uploads/sfm/'.$UserID;
if($_POST['chdir']) {
$NewDirectory = $_POST['new_directory'];// get your new_directory
$dir = $NewDirectory;
//echo $dir;
}