簡単な質問ですが、おそらく何百万回も尋ねられましたが、私は検索してこれを動作させることに近づいていません。PHPから提供されたブラウザのファイルを開く
UserFrostingフレームワーク内にブラウザを介してファイルを提供するPHPスクリプトがあります。私は彼らが 'オープン'インスタントとダウンロードを選択すると、そのファイルをブラウザで開くことを希望します。
問題は、正しく開いているのはテキストファイルのみです。それ以外のもの(これまでにテストされたPDFとJPGはPDFまたは画像として解釈されるのではなく、ASCII /文字化けしたコードのページとして開かれているだけです)。
header('Content-Type: '. $mime);
header('Content-Length: ' . filesize($diskname));
header('Content-Disposition: inline; filename=' . $savename);
return readfile($diskname);
$mime
が機能を介して設定されたファイルのMIMEタイプですので、私がこれまで見しようとしているファイルのためのapplication/pdf
またはimage/jpeg
次のようになります。
はここで私が使用しているコードです。
ファイルが正しく開かれない理由は誰にもありますか?
UPDATEは はレスポンスヘッダを確認したので、私はそれは私が使用しているコードに応じてに設定されている必要があることを代わりにapplication/jpeg
またはapplication/pdf
のtext/html;charset=UTF-8
のコンテンツタイプを取得しています。これがUserFrostingの問題なのですか?
"application/pdfまたはimage/jpegが可能" - サーバーが実際に送信していることを確認しましたか? – Quentin
ファイルに応じて、$ mimeはapplication/pdfまたはimage/jpegのいずれかに設定されています。私のブラウザのdebug-fuは素晴らしいものではありませんが(Firefoxを使用しています)、そのファイルは新しいタブで開かれていて、「HTML文書の文字エンコーディングは宣言されていません。「コンテンツタイプが何とか失われていると仮定していますか? – nockieboy
開発ツールを開きます。ネットワークタブを見てください。ページをロードしてください。すべてのリクエストとレスポンスが表示され、ヘッダと生のコンテンツを調べます。 – Quentin