0

我有一个如下图所示的数据库:

数据库

我想根据上次修改日期从我的计算机上的文件中自动使用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 函数正在运行且为真,但我仍然无法插入数据库。

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

4

1 回答 1

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;
    }
}
?>
于 2016-04-12T08:13:33.957 回答