2016-03-21 13 views
0

により、ブラウザで表示可能な作られたファイルのダウンロード:ヘッダを使用して、ページ上に表示されたファイルがあるとしヘッダ

header("Content-Length: " . filesize($file)); 
header("Content-type: application/pdf"); 
header("Content-disposition: inline"); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 

私はカールかのfile_get_contents、または任意でを使用して、外部からそのファイルをダウンロードすることができますどのように他の方法?

私はこれを試してみましたが、それは空のファイルダウンロード:私は(のfile_get_contentsを使用して実験し

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_NOBODY, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_URL, $url); //specify the url 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$head = curl_exec($ch); 

header('Content-Disposition: attachment; filename="' . basename($url) . '"'); 
header("Content-Length: " . $url); 
header("Content-Type: application/octet-stream"); 

を)それはとにかく、おそらく間違った方法です。

誰でも手助けできますか?

答えて

0

現時点では、実際のコンテンツ(本体)自体ではなく、curlでヘッダを取得するだけです。あなたは

curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_NOBODY, false); 

にバイナリコンテンツを取得することを変更すると

:あなたは今、他のために以前に取り込んだファイルのダウンロードを行いたい場合は

(コンテンツ配置はインラインでは問題になりません)ユーザーは単にそれを印刷するだけです。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_NOBODY, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_URL, $url); //specify the url 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$body = curl_exec($ch); 

header('Content-Disposition: attachment; filename="EXAMPLE_FILE.txt"'); 
header("Content-Length: " . strlen($body)); 
header("Content-Type: application/octet-stream"); 

echo $body; 
+0

ありがとうございます!これが正しい間に私はまだ私の問題を解決していません。私はまだ空のファイルをダウンロードしています。 誰かが "Content-disposition:inline"ファイルをダウンロードする方法を知っていれば、助けてください! – Ivannnnn

+0

私の例では、curlコマンドを使ってフェッチしようとすると、$ bodyは空ですか?その場合、ソースファイル自体に問題がある可能性があります(直接ブラウザ経由でソースファイルを取得することは可能でしょうか?)。さらに、CURLOPT_HEADERをtrueに設定して、print_rのレスポンス(私の例では$ body)を試すことができます。もっと詳しい情報があるかもしれません。そして最後に - Webサーバーのエラーログを確認します。何か問題が発生する可能性のあるヒントが見つかることもあります –

関連する問題