2017-12-01 7 views
0

ブラウザで表示するのではなく、強制的にファイルをダウンロードするヘッダーがありますが、そのオプションを指定する必要があります。私はStack Overflowのいくつかの記事を見てきましたが、この質問に答えましたが(例えばHow to force files to open in browser instead of download (pdf)?)、まだ希望の結果が得られていないので、何か不足しているかどうかチェックしたいと思っていました。ここでブラウザで強制的にPDFファイルをダウンロードする

$file = 'file.pdf'; 
    $filePath = 'path/to/file.pdf'; 

    header("Cache-Control: public"); 
    header("Content-Length: 20000"); 
    header("Content-Description: File Transfer"); 
    header("Content-Type:file"); 
    header('Content-Disposition: attachment; filename="$file"'); 
    header("Content-Transfer-Encoding: binary"); 

    readfile($filePath); 

そして、ここがしようとすると、ブラウザ

header("Cache-Control: public"); 
    header("Content-Length: 20000"); 
    header("Content-Description: File Transfer"); 
    header("Content-Type:file"); 
    header('Content-Disposition:inline; filename="$file"'); 
    header("Content-Transfer-Encoding: binary"); 

    readfile($filePath); 

内のファイルを表示するには、ヘッダーですダウンロードを強制するために私のヘッダですので、唯一の変化は、コンテンツ-dispositionヘッダがあります。

しかし、まだマークアップがブラウザに表示されています(画像参照)。

enter image description here

任意のアイデア?あなたがダウンロードを実行するために、ブラウザに指示したいときは、まだコンテンツ・処分のためinlineを使用している

感謝

答えて

0

。代わりにattachmentを使用してみてください。

よりdetais:Content-Disposition

+0

申し訳ありません - 私のミスは、それが添付ファイルを可能shoudl(と私のコードである - 上記を修正しています)。いずれにせよ、この問題はブラウザに表示されているダウンロードを強制することではありません – Newfoundland

関連する問題