<span 1</span> <span 方法一:
</span><span 2</span> <span header</span>(
'Content-Description: File Transfer'
<span );
</span><span 3</span> <span header</span>(
'Content-Type: application/octet-stream'
<span );
</span><span 4</span> <span header</span>(
'Content-Disposition: attachment; filename='
.<span
basename
</span>(<span
$filepath
</span><span ));
</span><span 5</span> <span header</span>(
'Content-Transfer-Encoding: binary'
<span );
</span><span 6</span> <span header</span>('<span Expires: 0′);
</span><span 7</span> header('Cache-Control: must-revalidate, post-check=0, pre-check=0<span ′);
</span><span 8</span> <span header</span>(
'Pragma: public'
<span );
</span><span 9</span> <span header</span>(
'Content-Length: '
. <span
filesize
</span>(<span
$filepath
</span><span ));
</span><span 10</span> <span readfile</span>(<span
$file_path
</span><span );
</span><span 11</span>
<span 12</span> <span 方法二:
</span><span 13</span> <span
$fileinfo
</span> = <span
pathinfo
</span>(<span
$filename
</span><span );
</span><span 14</span> <span header</span>(
'Content-type: application/x-'
.<span
$fileinfo
</span>[
'extension'
<span ]);
</span><span 15</span> <span header</span>(
'Content-Disposition: attachment; filename='
.<span
$fileinfo
</span>[
'basename'
<span ]);
</span><span 16</span> <span header</span>(
'Content-Length: '
.<span
filesize
</span>(<span
$filename
</span><span ));
</span><span 17</span> <span readfile</span>(<span
$thefile
</span><span );
</span><span 18</span> <span
exit
</span>();