[求助]通过PHP脚本下载文件导致错误/不同的md5校验和 - 为什么?
我试图通过PHP实现间接下载。在客户端,我验证下载的文件是否正确或不使用md5。
当我直接下载文件(http://server/folder/file.apk)时,我得到的文件系统与md5校验和一样,但是当我通过PHP脚本(http:// server /some_page.php)我得到了完全不同的校验和。为什么?
这里是我的PHP脚本:
<?php
$name_file="test2.apk";
$path="/home/user/public_html/apk/";
$dimension_file=(string)filesize($name_file);
header("Content-Type: application/vnd.android.package-archive ; name=".$name_file);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$dimension_file);
header("Content-Disposition: inline; filename=".$name_file);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: private");
header("Pragma: public");
readfile($path.$name_file);
?>
检查代码中的空格并将其删除。主要通过缩进。当执行不直接在页面上写东西的代码时,不要关闭php,这是一个好习惯。 – Vladimir
确保'<?php'之前或'?>'之后没有换行符或空格。在发送文件之后'退出'也是一个好主意,为了安全起见。 –
您可以检查编码,例如一边是UTF-8,另一边是ISO。如果您的php脚本不在相同的编码,它可能会导致一些校验和错误 –