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

从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条)

报告相同问题?