dougezhua0017 2018-07-23 15:12
浏览 352
已采纳

从FTP下载文件,同时保留原始的“最后更改”日期

I've build an FTP class in PHP with a function to download files from the FTP server.

This is the function so far

public function downloadData($serverFile, $localPath)
{
    $fileName   = basename($serverFile);        
    $file       = $localPath.$fileName;
    $download   = false;

    if(!file_exists($file))
    {
        // try to download $server_file and save to $local_file
        if(ftp_get($this->connection_id, $file, $serverFile, FTP_BINARY)) {
            $download = true;
        }
    }

    return $download;
}

Basically it works fine, but when saving the data the "last change date" of the file is set to the current date/time. I somehow want to prevent this, because the original date is important for my needs.

Is there a way to keep the original modified date of the file?

  • 写回答

2条回答 默认 最新

  • dongwei2030 2018-07-23 16:49
    关注

    It sounds like you believe there's something overwriting the timestamp. There's not. The timestamp is simply not transferred at all during an FTP download. So the local file has last modification time matching the transfer time (= the last time the local file was modified).


    But you can of course explicitly set the timestamp after the download finishes.

    • Use ftp_mdtm to retrieve the timestamp of source file on FTP server.
    • Use touch to set the timestamp of target local file.
    touch($file, ftp_mdtm($this->connection_id, $serverFile));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。