Javascript 使用jQuery、JSON和PHP从目录中获取文件大小和文件日期
在使用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'];
<?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
}