Мне трудно правильно сформулировать этот вопрос, позвольте мне попытаться объяснить нашу проблему ...
У нас есть интрасеть, работающая на коробке Ubunutu с Apache2 / PHP 5.2.4.У нас есть немного кода PHP, который читает файл из каталога, который не является общедоступным, и выводит его на экран (код ниже):
$file_path = '/home/path/to/filename.gif';
if(file_exists($file_path)){
$output = FALSE;
//File Information
$path_parts = pathinfo($file_path);
$file_size = filesize($file_path);
$file_ext = (isset($path_parts['extension'])) ? strtolower($path_parts['extension']) : null;
$file_name = $path_parts['basename'];
//Sets up the headers
if($file_size > 0){
header('Content-Length: ' .$file_size);
}
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header('Content-Type: application/octet-stream');
//Reads the File
if($file_size > 0){
$handle = fopen($file_path, "r");
$output = fread($handle, $file_size);
fclose($handle);
}
//Outputs the File
echo $output;
}
Внутри нашей сети при переходе на страницу, которая используетэтот код, файл загружается идеально и быстро ... Однако при доступе к этой странице через нашу Cisco ASA / Proxy / VPN (не знаю, как ее назвать) этот код блокирует браузер, но в конечном итоге загружает файл ...
После небольшого количества экспериментов, после удаления заголовков и простого вывода содержимого файла в браузер, он не печатает никаких проблем.Однако, как только я добавляю строки с заголовками обратно в код, это снова вызывает зависание, но только при доступе через это поле.
Кто-нибудь сталкивался с этой проблемой раньше или имеет представление о том, что мы можем попробоватьдвигаться вперед?
Спасибо за любой совет ...