我在PHP中使用一个简单的代码来下载文件并计算其MD5以验证下载是否按预期完成,但我注意到PHP即使在下载健康,完整的文件时,它也略大于一个在服务器中的几个字节,因此导致MD5检查失败。
这是我使用的PHP代码:
<?php
$path_parts = pathinfo($_GET['a']);
$file_name = $path_parts['basename'];
$file_path = 'temp/' . $file_name;
if (file_exists($file_path)) {
$size = filesize($file_path);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Type: application/zip");
header("Content-length: $size");
header("Content-Transfer-Encoding: binary");
// read the file from disk
readfile($file_path);
}
else
echo 'File does not exists';
?>
在服务器中我有一个.ZIP文件,它的权重为203字节,但下载的文件是254字节或更高。那么,我做错了什么不能让PHP下载一个完整的简单文件?
要下载我使用C# WebClient
或Goolgle-Chrome的文件,我在两者中都会得到相同的结果。