我现在尝试在php中使用一个小的Filebrowser
使用这部分代码,我会在页面加载时显示我的文件。
@Override
public boolean onMenuItemActionExpand(final MenuItem item) {
final View actionView = MenuItemCompat.getActionView(item);
final View edit = actionView.findViewById(R.id.connections_find_people_edit);
if(edit.requestFocus()) {
KeyboardUtils.showSoftKeyboard(ConnectionsFragment.this);
}
return true;
}
然后我有一个文件夹,一个小的Ajax请求通过JS
$dir = './files';
$directories = array();
$files_list = array();
$files = scandir($dir);
foreach($files as $file){
if(($file != '.') && ($file != '..')){
if(is_dir($dir.'/'.$file)){
$directories[] = $file;
}else{
$files_list[] = $file;
}
}
}
foreach($directories as $directory){
?>
<div class="a_folder" id="<?php echo "$here/files/$directory" ?>">
<div class="a_file_icon"></div>
<div class="a_file_name"><?php echo $directory ?></div>
<div class="a_file_size"></div>
<div class="a_file_last"><?php echo date ("Y-m-d H:i:s.", filemtime('./files/' . $directory)) ?></div>
</div>
<?php
}
foreach($files_list as $file_list){
?>
<div class="a_file">
<div class="a_file_icon_file"></div>
<div class="a_file_name"><?php echo $file_list ?></div>
<div class="a_file_size"><?php echo FileSizeConvert(filesize('./files/' . $file_list)); ?></div>
<div class="a_file_last"><?php echo date ("Y-m-d H:i:s.", filemtime('./files/' . $file_list)) ?></div>
</div>
<?php
}
getFiles.php
$(document).ready(function()
{
$(".a_folder").click(function()
{
var ID = $(this).attr("id");
$.ajax({
type:"POST",
url:"./ajax/getFiles.php",
data:{ 'ID': ID},
success: function(data){
$(".content").html(data)
}
});
});
});
所以但实际上我的路径处理有问题。 如何确保脚本每次都获得正确的路径?
如果有一些未解决的问题,请随时询问
答案 0 :(得分:0)
第一个的id设置如下:
<div class="a_folder" id="<?php echo "$here/files/$directory" ?>">
我在其余代码中看不到$here
。
第一页使用$dir = './files';
getFiles.php
正在使用:
$filename= $_POST["ID"];
$dir = $filename;
您的$_POST["ID"]
看起来像/files/$directory
所以你错过了./
我的建议是改变:
$directories[] = $file;
对此:
$directories[] = $dir.'/'.$file;
并改变这一点:
<div class="a_folder" id="<?php echo "$directory" ?>">
另外看看使用absoulte路径,这不是很安全!