2017-11-15 2 views

答えて

1

これは、すべてHTMLまたはPHPとHTMLで実行できます。しかし、より安全な入力検証が可能になり、後方互換性とブラウザ互換性が向上するため、PHP実装がより好きです。 JavaScriptメソッドでは、特定のWebブラウザではサポートされていないデータURLが必要になります。

<?php 

    function startDownload($filePath) { 
    header("Content-Type: application/octet-stream"); 
    header("Content-Disposition: attachment; filename=" . basename(urlencode($filePath))); 
    header("Content-Type: application/octet-stream"); 
    header("Content-Type: application/download"); 
    header("Content-Description: File Transfer"); 
    $fp = fopen($filePath, "r"); 
    while (!feof($fp)) { 
     echo fread($fp, 65536); 
     flush(); 
    } 
    fclose($fp); 
    die();  
    } 

    //Note that I decided to check specifically for the strings and didn't just take the hidden field here 
    // If we just assume the user isn't a liar, 

    if (isset($_POST['name']) && isset($_POST['file'])) { 
    if ($_POST['file'] == "pdfurl-guide.pdf") { 
     startDownload("pdfurl-guide.pdf"); 
    } else if ($_POST['file'] == "someOther.pdf") { 
     startDownload("someOther.pdf"); 
    } else { 
     echo "error"; 
    } 
    } 

?> 

Please fill out the following form to download: 
<form method="post" action=""> 
    <input type="hidden" name="file" value="pdfurl-guide.pdf" /> 
    Name: <input type="text" name="name" /><br /> 
    <input type="submit" /> 
</form> 
<br /> 
What if you want this file?  
<form method="post" action=""> 
    <input type="hidden" name="file" value="someOther.pdf" /> 
    Name: <input type="text" name="name" /><br /> 
    <input type="submit" /> 
</form> 
+0

ご意見ありがとうございました。私が参照しているページは次のとおりです。http://www.workrite.com/fr-information/downloads/tech-briefs-white-sheets_new.php 同じフォームで複数のボタンを使用する方法はありますか? –

+0

@BillyFischbach私はこれがあなたが意味するものだと思います。複数のダウンロードの機能を追加しました。同じことをする複数のボタンが必要な場合は、複数の ''を追加するか、JavaScript経由で提出することができます。 – Neil

+0

いいえ私は実装しようとしています。ありがとうございました! –

1

はい、可能です。多くの方法があります。フォームが提出されてから表示されるまで、jQueryを使用してダウンロードボタンを隠すことができます。

また、自分のメールアドレスを入力した場合は、独自の文字列(例:www.yourwebsite.com/pdf.php?s=h4jbsj5623v6)のURLを含むメールを送信し、この文字列もデータベースに保存します。

TCPDF libraryまたは.pdfファイルを生成できる他の同様のPHPライブラリを使用してpdfドキュメントを生成するPHPファイルを作成するよりも、

人がダウンロードURLにアクセスすると、GETパラメータとして渡される一意の文字列がデータベースに存在するかどうかをチェックします。そして、それが前述のライブラリを使用してPDF文書を表示している場合。

希望します。

+1

私は複数の.pdfファイルを持つ単一のhtml形式を使用してこの作業をしようとしています。私はそれをPHP、jqueryで動作させることができると思いますか? –

+1

複数の.pdfファイルが何を意味するかわからない...ユーザーはダウンロードしたいPDFを確認できますか? – Jure

+0

私はダウンロードリンクを持っている複数のボタンを1ページ持っています:http://www.workrite.com/fr-information/downloads/tech-briefs-white-sheets_new.php –

関連する問題