Предлагается следующее решение
1. Добавляем полезную функцию ExitWithHeader в файл album_mod/album_functions.php
Код: Выделить всё
function ExitWithHeader($output,$message='')
{
global $db, $HTTP_SERVER_VARS;
$db->sql_close();
if(function_exists("getallheaders")) header("HTTP/1.1 $output");
else header('Status: '.$output);
$code=intval(substr($output,0,3));
if(($code==200)||($code==304))
{
if(isset($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE'])) header("Last-Modified: ".$HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE']);
if(isset($HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH'])) header("Etag: ".$HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH']);
}
if(!empty($message)) {
header ('Content-Type: text/plain');
echo $message;
}
exit;
}
НАЙТИ
Код: Выделить всё
if( empty($thispic) or !file_exists(ALBUM_UPLOAD_PATH . $pic_filename) )
{
die($lang['Pic_not_exist']);
}
Код: Выделить всё
$MyETag='"'.md5($thispic['pic_thumbnail'].$thispic['pic_time']).'"';
$MyGMTtime=gmdate("D, d M Y H:i:s", $thispic['pic_time'])." GMT";
if(isset($HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH'])&& ($HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH']== $MyETag)) ExitWithHeader('304 Not Modified');
else if(isset($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE']) && ($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE'] == $MyGMTtime)) ExitWithHeader('304 Not Modified');
header("Last-Modified: ".$MyGMTtime);
header("Etag: ".$MyETag);
Открыть файл album_pic.php
Найти
Код: Выделить всё
readfile(ALBUM_UPLOAD_PATH . $thispic['pic_filename']);
exit;
Код: Выделить всё
$MyETag=filectime(ALBUM_UPLOAD_PATH . $thispic['pic_filename']);
$MyGMTtime=gmdate("D, d M Y H:i:s", $MyETag)." GMT";
$MyETag='"'.$MyETag.'"';
if(isset($HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH'])&& ($HTTP_SERVER_VARS['HTTP_IF_NONE_MATCH']== $MyETag)) ExitWithHeader('304 Not Modified');
if(isset($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE']) && ($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE'] == $MyGMTtime)) ExitWithHeader('304 Not Modified');
header("Last-Modified: ".$MyGMTtime);
header("Etag: ".$MyETag);