2017-08-02 5 views
0

私はユーザーから提出されたpdfファイルを持っています(ファイルアップロード)。ファイルを取得したら、2つの関数を実行し、blobとしてデータベースに格納しました。私が何をしたいかPHPディスクに書き込まずにクライアントブラウザにPDFを送信

$file = base64_encode(file_get_contents($pathToFile));

、ディスク(サーバ側)にそれを記述することなくブラウザにPDFファイルを送信します。ファイルを再構築してディスクに保存し、ファイルへのリンクを生成すると、正常に開きます。

file_put_contents("pathToPutFile", base64_decode($dataFromDB)); 

しかし、私は、ディスクに保存せずにブラウザにPDFファイルを送信しようとした場合、私はエラーを取得するには、下図の「PDFドキュメントの読み込みに失敗しました」。

PDF Error Message

この偉業を試みるために使用されるコードは、以下です。

$data = base64_decode($origSel['InvestigationFile']); 

header('Content-Type: application/pdf'); 
header('Content-Disposition: inline; filename="Statement"'); 
header('Content-Transfer-Encoding: binary'); 
header('Accept-Ranges: bytes'); 
echo $data; 

最初にファイルがディスク(サーバー側)に書き込まれていない場合でも、ファイルをユーザーに送信していますか?

可能であれば、何が間違っていますか/間違っていますか?

不可能な場合、ユーザーに表示されたPDFファイルがサーバーから削除されるようにするにはどうすればよいでしょうか。

答えて

2

この部分の前に出力があったため、これは失敗しました。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
<div> 
    "navigation bar goes here" 
</div> 
    <?php 
     $data = base64_decode($origSel['InvestigationFile']); 

     header('Content-Type: application/pdf'); 
     header('Content-Disposition: inline; filename="Statement"'); 
     header('Content-Transfer-Encoding: binary'); 
     header('Accept-Ranges: bytes'); 
     echo $data; 
    ?> 

すべてのHTMLを削除した後、これを動作させることができました。

関連する問題