我正在尝试通过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
之前或?>
之后没有换行符或空格。发送文件后,最好使用exit;
来确保安全。 - gen_Eric