2017-04-04 14 views
1

私のPHPコードでは、PDFドキュメントのロードに失敗しました与えるは、私はPHPに新しいですし、コードの機能の下に実装しようとし

機能: 私は1つのダウンロードボタンがあり、クリックすると私は私のPDFファイルをダウンロードすることができるはずですhtdocs - > xxfilename - > abc.pdfの下に保存されたファイル。

コード: 私はコードの下に使用しています私のxyz.phpのWebページで

<?php 
$title = "Learning"; 
$content = ' 
      <h3> Intro</h3> 
      <p> 
       Introduction goes here 
      </p> 
      <form action = "xyz.php" method = "post" name = "downloadform"> 
       <input type="submit" value="Download" name="dwnld_file"/> 
      </form> 
     '; 
if (isset($_POST['dwnld_file'])) { 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("PQR"); 
    $res = mysql_query("Select * from tab1"); 
    while ($row = mysql_fetch_array($res)) { 
     $file = '$row["col2"]'; 
     header('Content-Type: application/pdf'); 
     header('Content-Disposition: attachment; filename="' . $row["col2"] . '"'); 
     header('Content-Transfer-Encoding: binary'); 
     header('Accept-Ranges: bytes'); 
     header('Content-Length:' . filesize($file)); 
     readfile($file); 
    } 
} 
include 'Template.php'; 
?> 

エラー: 私のPDFファイルをダウンロードなっているが、それを開くと、それは「PDF文書を読み込むことができませんでした」と言う

私が間違っているところを助けてください。

***編集****私は別のアプローチを試してみました、私のファイルをダウンロードしているが、まだそれは

私の他のアプローチのコードが下にある「PDF文書を読み込むことができませんでした」という

<form action = "xyz.php" method = "post" name = "downloadform"> 
     <input type="submit" value="Download " name="dwnld_file"/> 
    </form> 
    <?php 
    if (isset($_POST['dwnld_file'])) { 
     mysql_connect("localhost", "root", ""); 
     mysql_select_db("test"); 
     $res = mysql_query("Select * from tab1"); 
     while ($row = mysql_fetch_array($res)) { 
      $file = $row["col1"]; 
      echo $file; 

      header('Content-Type: application/pdf'); 
      header('Content-Disposition: attachment; filename="' .$file. '"'); 
      header('Content-Transfer-Encoding: binary'); 
      header('Accept-Ranges: bytes'); 
      header('Content-Length:' . filesize($file)); 
      readfile('myfile/'.$file); 
     } 
    } 
    ?> 

私が何か悪いことをしているかどうか教えてください。

+0

これは非常に醜い実装方法です。 – Amit

+0

ここに似たような質問のための受け入れられた答えがあるように見えるhttp://stackoverflow.com/questions/1004478/read-pdf-files-with-php –

+0

@Amit:あなたはそれを行うよりよい方法を提案できますか? 私のすべてのページに共通のテンプレートがあります。 PDFファイルをダウンロードするにはDownload PDFボタンを表示する必要があります。 –

答えて

0

もう少し調査をしてから別のソリューションを実装しましたが、問題を解決できました。

以下は実装に使用したコードです。

コンセプト:

1)私たちは、この機能を取得するために、HTML + JSP + PHPを使用することができます。

2)HTML + JSP側では、ボタンをクリックしたイベントをキャプチャするためにeventListenerを呼び出す必要があります。

3)このイベントは、pdfファイルをローカルコンピュータにダウンロードするphpページにリダイレクトされます。

コードスニペット:download.phpでXYZ.php

<input type="button" id="btnshow" value="Download" name="dwnld" /> 
     <script> 
      var btn = document.getElementById('btnshow'); 
      btn.addEventListener('click', function() { 
       document.location.href = '<?php echo 'download.php'; ?>' 
      }) 
     </script> 

<?php 
mysql_connect("localhost", "root", ""); 
mysql_select_db("database_name"); 
$res = mysql_query("Select * from table_name"); 
while ($row = mysql_fetch_array($res)) { 
    $file = 'Pdf_File/' . $row["Path"]; 
    $filename = $row["Path"]; 
    header('Content-Type: application/pdf'); 
    header('Content-Disposition: attachment; filename="' . $filename . '"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Accept-Ranges: bytes'); 
    readfile($file); 
} 
?> 

希望を(ここではXYZを使用すると、[ダウンロード]ボタンを表示したいページの名前です)それは私のような初心者のうちのいくつかを助けます。

ハッピーコーディング!

関連する問題