PHP-通过fread下载文件,保留上次修改时间

PHP-通过fread下载文件,保留上次修改时间,php,download,fread,filemtime,Php,Download,Fread,Filemtime,下面的脚本(只是相关部分)让我下载了一个文件: if ($file = fopen($file, 'r')) { if(isset($_SERVER['HTTP_RANGE'])) { fseek($file, $range); } while(!feof($file) && (!connection_aborted()) && ($bytes_send<$new_leng

下面的脚本(只是相关部分)让我下载了一个文件:

if ($file = fopen($file, 'r'))
{
    if(isset($_SERVER['HTTP_RANGE']))
    {
        fseek($file, $range);
    } 
    while(!feof($file) && 
        (!connection_aborted()) && 
        ($bytes_send<$new_length))
    {
        $buffer = fread($file, $chunksize);
        print($buffer); //echo($buffer); // is also possible
        flush();
        $bytes_send += strlen($buffer);
    }
    fclose($file);
}
if($file=fopen($file,'r'))
{
如果(isset($\u服务器['HTTP\u范围]]))
{
fseek($file,$range);
} 
而(!feof($file)和
(!connection_aborted())&&

($bytes_send在发送任何输出之前,请执行以下操作

header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime($file)) . " GMT");

我认为这不会导致web浏览器在修改时间内将文件保存在本地。我认为您需要为此使用某种类型的存档格式,如zip。

在发送任何输出之前,请执行以下操作:

header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime($file)) . " GMT");

我不认为这会导致web浏览器在修改时间内将文件保存在本地。我认为您需要使用某种类型的存档格式,如zip。

我不确定是否理解您的需要,但如果您希望每次都更新上次访问权限,也许您应该检查触摸功能()您需要使用更高级的方法来检索http请求的头并提取上次修改的头。使用基本的fread()调用根本无法做到这一点。查看使用或mishu:是的,touch的问题是我需要“touch”有些东西…对于给定的脚本,我只是输出原始文件内容!因此…@MarcB:我正在搜索解决方案,但现在,我还没有完成!谢谢我不确定我是否理解您的需要,但是如果您想每次更新上一次访问,也许您应该检查触摸功能()您需要使用更高级的方法来检索http请求的头并提取上次修改的头。使用基本的fread()调用根本无法做到这一点。查看使用或mishu:是的,touch的问题是我需要“touch”有些东西…对于给定的脚本,我只是输出原始文件内容!因此…@MarcB:我正在寻找解决方案,但现在,我还没有完成!谢谢