2

0kbで保存されているファイルをダウンロードすると、ダウンロードスクリプトに問題があります。何か案は?これが私のPHPスクリプトです

<?php
$file = $_GET['fname'];
$fullpath = get_bloginfo('template_url')."/application/display/1358947404.pdf";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($fullpath));
header('Expires: 0');
header('Cache-Control: must-revalidate');
ob_clean();
flush();
readfile($fullpath);
?>
4

2 に答える 2

1

content-length ヘッダーも追加してください。

これを試してください:-

<?php
$file = $_GET['fname'];

$fullpath = get_bloginfo('template_url')."/application/display/1358947404.pdf";

$headers = get_headers($fullpath, 1);// use file absolute path here
$fsize = $headers['Content-Length'];

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($fullpath));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header("Content-Length: " . $fsize);
ob_clean();
flush();
readfile($fullpath);
?>
于 2013-01-24T06:21:24.670 に答える
0

以下のコードを試してみてください。

私は自分のローカルホストでこれをテストしました。

$file = $_GET['fname'];

$fullpath = get_bloginfo('template_url')."/application/display/1358947404.pdf";
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($fullpath));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullpath));
ob_clean();
flush();
readfile($fullpath);
于 2013-01-24T06:30:32.163 に答える