使用jQuery,JSON和PHP从目录中获取文件大小和文件日期

时间:2018-12-19 18:58:32

标签: javascript php jquery

在能够使用jQuery,JSON和PHP从目录中成功获取文件名之后,我现在需要能够从同一目录中获取文件大小和文件日期。

我还没有尝试获取文件大小,但这是我尝试获取文件日期的方法:

<?php
include('include/sessions.php'); 

if(isset($_POST['editpartnercode']))
{
   $partnerCode = $_POST['editpartnercode'];
   $bookingNum = $_POST['editbooking'];

   $dir = "D:/CargoDocsPDFs/". $partnerCode . "/" . $bookingNum;

   $ffs = scandir($dir);

   $files = array();

   foreach($ffs as $ff)
   {               
       if($ff != '.' && $ff != '..')
       {   
           array_push($files, $ff, date('F d, Y h:i A', filemtime($dir . '/' . $ff)));
       }
   }
   echo json_encode($files);
}   
?>

这是显示JSON数据的jQuery:

$.post('process/displayFiles.php', {editpartnercode:editpartnercode,editbooking:editbooking}, function(data)
{
    var obj = JSON.parse(data);
    $('#allFiles').empty();
    var htmlToInsert = obj.map(function (item)
    {
        if(item !== '..' && item !== '.' && item !== 'Thumbs.db')
        {
            return "<form method='POST'>
              <a href='process/viewFiles.php?img="+item+"&book="+editbooking+"' 
              target='_blank'>"+item+"</a><br/></form>";
        }
    });
    $('#allFiles').html(htmlToInsert);      
});

(文件viewFiles.php基本上只是检查文件类型。我认为没有必要显示该代码。)

使用上述方法,文件和日期显示在屏幕上,但是它们都是超链接(参见图片):

enter image description here

我需要在文件名旁边列出日期,而不是超链接。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

  

从目录中获取文件大小和文件日期


  

我需要在文件名旁边列出日期,而不是超链接。

1。在您的PHP中,将循环更改为:

foreach($ffs as $ff)
{
    // backend file rejection rather than client (in JS) side
    if($ff != '.' && $ff != '..' && $ff != 'Thumbs.db')
    {
        $file_dir = $dir."/$ff";

        // Append each file information to multidimensional array
        $files[] = [
            "file_name" => $ff,
            "file_date" => date('F d, Y h:i A', filemtime($file_dir)),
            "file_size" => filesize($file_dir)
        ];
    }
}

2。立即进入您的$.post

try {
    var obj = JSON.parse(data);
    $('#allFiles').empty();

    const htmlToInsert = obj.map(item =>
        `
            <form method='POST'>
                <a href="process/viewFiles.php?img=${item.file_name}&booking=${editbooking}" target="_blank">
                    ${item.file_name}
                </a>
                <span>${item.file_date}</span>
                <span>${item.file_size}</span>
                <br>
            </form>
        `
    );

    $('#allFiles').html(htmlToInsert);
} catch (e) {
    // Throw JSON.parse exception
}