PHP: 网络文件损坏?

PHP: Corrupted file in network?

我需要读取一个文件(总是一个图像)来下载它,但它总是损坏。

$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;

我尝试过的:

  1. 不是一个safe_mode问题,因为它已经关闭了;
  2. 不是BOM问题,因为我已经检查过了;
  3. 代码末尾不是一个?>\n或某种白色space,因为我已经检查过了;
  4. 编辑:代码的 begin 不是 \n<? 或某种白色 space 因为我已经检查过了已经;
  5. 可以显示使用img html标签的图像没有任何问题;
  6. 我拥有目标文件夹的所有权限;
  7. S:/PATH/TO/ART2770.jpgS:\PATH\TO\ART2770.jpgfile:///S:/PATH/TO/ART2770.jpg 也无法 return 一个有效文件。

我正在使用 Windows 7 64 位, PHP 版本 5.3.5, Xampp 1.7.4Internet Explorer 11(必须在 IE 上工作,不需要在其他浏览器上工作)。

header('Content-Type: $ctype');

会输出 Content-Type: $ctype

尝试header("Content-Type: $ctype");header('Content-Type: '.$ctype);

另外:确保 <?php

之前没有空格

我想正确的输入网络路径的方式是\\PATH\TO\ART2770.jpg,更不用说网络S:字母了。