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;
我尝试过的:
- 这不是一个
safe_mode
问题,因为它已经关闭了;
- 不是
BOM
问题,因为我已经检查过了;
- 代码末尾不是一个
?>\n
或某种白色space,因为我已经检查过了;
- 编辑:代码的
begin
中 不是 \n<?
或某种白色 space 因为我已经检查过了已经;
- 我可以显示使用
img
html标签的图像没有任何问题;
- 我拥有目标文件夹的所有权限;
S:/PATH/TO/ART2770.jpg
、S:\PATH\TO\ART2770.jpg
和 file:///S:/PATH/TO/ART2770.jpg
也无法 return 一个有效文件。
我正在使用 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\TO\ART2770.jpg,更不用说网络S:
字母了。
我需要读取一个文件(总是一个图像)来下载它,但它总是损坏。
$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
或某种白色space,因为我已经检查过了; - 编辑:代码的
begin
中 不是\n<?
或某种白色 space 因为我已经检查过了已经; - 我可以显示使用
img
html标签的图像没有任何问题; - 我拥有目标文件夹的所有权限;
S:/PATH/TO/ART2770.jpg
、S:\PATH\TO\ART2770.jpg
和file:///S:/PATH/TO/ART2770.jpg
也无法 return 一个有效文件。
我正在使用 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\TO\ART2770.jpg,更不用说网络S:
字母了。