0

Excelファイルをダウンロードできません。ファイルをダウンロードしますが、コンテンツがなく、サイズが0kbです。これは私のhtmlコードです。

<h5 style="color: red;">
    <a href="2.php?file=files/Battle_Entry_form.xls" class="links">
        Click here to download A Registration form
    </a>
</h5> <br />

2.php (これは、Excel ファイルをダウンロードするための私の php コードです)

<?php 
if(isset($_GET['file'])){
    $filename = $_GET['file'];

    header('Content-type: application/vnd.ms-excel');

    header('Content-Disposition: attachment; filename="'.$filename.'"');

    readfile("http://www.caledtech.com/batllewebsite/".$filename);
    exit;
}
?>

私のコードに欠けているものはありますか?

4

2 に答える 2

0

readfileの PHP マニュアルは次のように述べています。

fopen ラッパーが有効になっている場合は、この関数で URL をファイル名として使用できます。ファイル名の指定方法の詳細については、fopen() を参照してください。さまざまなラッパーが持つ機能、使用方法に関する注意事項、提供される定義済み変数に関する情報へのリンクについては、サポートされているプロトコルとラッパーを参照してください。

readfile の代わりに file_get_contents使用する必要があると思います。

echo file_get_contents("http://www.caledtech.com/batllewebsite/".$filename);

そして、ファイル名にbasenameを使用することをお勧めします:

header('Content-Disposition: attachment; filename="'.basename($filename).'"');
于 2014-08-11T10:24:06.237 に答える