如何在PHP中使用filemtime函数?

时间:2016-04-12 07:16:28

标签: php html mysql filemtime

我有一个像图片下面的数据库:

database

我希望使用php中的uploaddate功能自动在filemtime()列中的计算机上的文件中根据上次修改日期插入日期和时间。

我试图使用此代码:

$namefile= $_FILES['filename']['name']; //from file i have uploaded
if (file_exists($namefile)) 
{
 $uploaddate = date ("Y-m-d H:i:s", filemtime($namefile));
}
echo $uploaddate;

这是我的SQL查询:

$import="INSERT into scan (UploadDate, ScanDate, FileName) 
         values('$uploaddate', '$date', '$namefile')
         ON DUPLICATE KEY UPDATE UploadDate='$uploaddate', ScanDate='$date',  
         FileName='$namefile'";

echo函数正在运行且为true但我仍然无法插入数据库。

你知道问题出在哪里吗?非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

问题是 - 你试图修改名称(!)的时间而不是文件的路径。 如果您要创建和upload_from目录并将其放在表单处理器文件附近,则此示例将起作用。然后,您应该从那里上传文件。或者你可以指定另一个(路径应该是绝对的)。不幸的是,这个决定只适用于那些特定情况。

然而,对文件的修改时间的操作 - 是棘手的,因为它可以由用户手动设置,它可能来自具有不同时间设置的用户,因此,您只能相信您的机器与该本地决策,我提供的。

PS:我没有找到在上传文件中访问绝对文件名的方法。

index.php内容:

<form method="POST" action="index.php" enctype="multipart/form-data">
    <input type="file" name="filename">
    <input type="submit">
</form>
<?php
$upload_from_dir = 'upload_from';
if (!empty($_FILES)) {
    $namefile = $upload_from_dir . DIRECTORY_SEPARATOR . $_FILES['filename']['name'];
    if (file_exists($namefile)) {
        $uploaddate = date("Y-m-d H:i:s", filemtime($namefile));
        echo $uploaddate;
    }
}
?>