我有一个像图片下面的数据库:
我希望使用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但我仍然无法插入数据库。
你知道问题出在哪里吗?非常感谢你的帮助。
答案 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;
}
}
?>