PHP目录监听

时间:2016-02-24 17:49:15

标签: javascript php ajax

我现在尝试在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)
                    }
                }); 


    });
});

所以但实际上我的路径处理有问题。 如何确保脚本每次都获得正确的路径?

如果有一些未解决的问题,请随时询问

1 个答案:

答案 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路径,这不是很安全!