我有一个如下图所示的数据库:
我想使用 php 中的 filemtime()
函数在 uploaddate
列中自动插入基于计算机上文件的上次修改日期的日期和时间。
我尝试使用此代码:
$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 函数正在运行并且正确,但我仍然无法插入数据库。
请问您知道问题出在哪里吗?非常感谢您的帮助。
最佳答案
问题是 - 您正在尝试获取名称的修改时间(!)而不是文件的路径。
如果您创建 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;
}
}
?>
关于php - 如何在 PHP 中使用 filemtime 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566152/