Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery、JSON和PHP从目录中获取文件大小和文件日期_Javascript_Php_Jquery - Fatal编程技术网

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

Javascript 使用jQuery、JSON和PHP从目录中获取文件大小和文件日期,javascript,php,jquery,Javascript,Php,Jquery,在使用jQuery、JSON和PHP成功地从目录中获取文件名之后,我现在需要能够从同一目录中获取文件大小和文件日期 我还没有尝试获取文件大小,但我尝试获取文件日期: <?php include('include/sessions.php'); if(isset($_POST['editpartnercode'])) { $partnerCode = $_POST['editpartnercode']; $bookingNum = $_POST['editbooking'];

在使用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基本上只是检查文件类型。我认为没有必要显示该代码

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

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

我怎样才能做到这一点

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

-文件修改时间 -文件大小 我需要在文件名旁边列出日期,而不是超链接

一,。在PHP中,将循环更改为:

二,。立即在您的$内发布:


您希望每个文件都有一个子数组,而不是将所有的子数组都转储到一个平面数组中。虽然非常有希望,但这些文件返回时都是未定义的。请确保在回显文件时仍然对其进行json_编码。能否显示console.logobj;的结果;?在foreach循环之后,我确实回显了json_编码。console.logobj如下所示:[TEST987654.pdf,2018年12月19日12:12 PM]嗯,结果与上面的PHP完全不同。确保在向数组中添加元素时完全遵循语法。我的console.logobj;看起来:[{file_name:test.pdf,file_date:2018年12月19日08:29 PM,file_size:426}]好的,突然之间,我可以看到文件名,而不是未定义的,这是一件好事。但是,该链接不会打开该文件。选项卡打开了,但是我在页面上看到一个404错误。
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)
        ];
    }
}
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
}