Мне нужно прочитать файл (всегда изображение), чтобы загрузить его, но он всегда поврежден.
$path = 'S:\PATH\TO\ART2770.jpg';
$file = 'ART2770.jpg';
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpeg"; break;
default:
}
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($path)) . ' GMT');
header('Accept-Ranges: bytes'); // Allow support for download resume
header('Content-Length: ' . filesize($path)); // File size
header('Content-Encoding: none');
header('Content-Type: '.$ctype);
header('Content-Disposition: attachment; filename=' . $filename); // Make the browser display the Save As dialog
readfile($path);
exit;
Что я пробовал:
safe_mode
проблема, потому что она уже выключена;BOM
проблема, потому что я уже проверил это;?>\n
или какой-то пробел в конце кода, потому что я уже проверил это;\n<?
или какой-то пробел в begin
кода, потому что я уже проверил его;img
HTML-тег без проблем;S:/PATH/TO/ART2770.jpg
, S:\\PATH\\TO\\ART2770.jpg
а также file:///S:/PATH/TO/ART2770.jpg
также не удается вернуть действительный файл.я использую Windows 7 64 бит, Версия PHP 5.3.5, Xampp 1.7.4 а также Internet Explorer 11 (Должен работать в IE, не нужно работать в других браузерах).
header('Content-Type: $ctype');
выйдет Content-Type: $ctype
Пытаться header("Content-Type: $ctype");
или же header('Content-Type: '.$ctype);
Также: убедитесь, что до этого нет пробелов <?php
Я понял, что правильный путь для ввода сетевого пути \\ PATH \ К \ ART2770.jpg, даже не упоминая сеть S:
письмо.