前提
会員制のサイトにてPDF.jsでPDFを表示。
しかし、個人情報が含まれるデータが入っているので、PDFファイルをドキュメントルート上に置いておきたくない。
実現したいこと
ドキュメントルート外においたPDFファイルを、phpで呼び出し、PDF.jsを組み合わせて?
iframeで埋め込みした PDF.jsで表示させたい
発生している問題・エラーメッセージ
そんなときに、まさに 同じ質問されている方・解決済みの質問を見つけたのですが・・
PDF.jsの「viewer.html?file=example.php」と記載して、example.phpにGETパラメーターを渡す方法
https://teratail.com/questions/160051
上記の自己解決されている コメントに記載されている
まず下記のjeffbeagleyさんのコメントの「had to be changed to」と同様にview.jsを修正します。
引用テキスト
https://github.com/mozilla/pdf.js/issues/9085
ですが、
2018年バージョンのPDF.jsのコードなのか現在のPDF.jsの viewer.js には Old code に記載されている 修正すべき該当のコードが見当たりません
Old code function parseQueryString(query) { var parts = query.split('&'); var params = Object.create(null); for (var i = 0, ii = parts.length; i < ii; ++i) { var param = parts[i].split('='); var key = param[0].toLowerCase(); var value = param.length > 1 ? param[1] : null; params[decodeURIComponent(key)] = decodeURIComponent(value); } return params; } had to be changed to function parseQueryString(query) { var parts = query.split('&'); var params = Object.create(null); for (var i = 0, ii = parts.length; i < ii; ++i) { var param = parts[i].split('file='); var key = "file"; var value = param.length > 1 ? param[1] : null; params[decodeURIComponent(key)] = decodeURIComponent(value); } return params; }
試したこと
pythonはかじった程度でわかりますが、phpとjavascriptは全く理解していないため、自己解決された とされる 方法を何度読んでも 具体的な方法がわかりません。(設置場所、コード)
最初はPDFの保存しているフォルダにベーシック認証をかけて PDF.jsで読み込みできたら・・と考えていたのですが、
いろいろ調べているうちに、ドキュメントルート外において、PHPで画像を呼び出すのが一番早い・・と 2,3個の質問の回答に記載があり
https://teratail.com/questions/303125
さらにPDF.jsで呼び出す 自己解決の方法があったので、まさにこれが一番だと考えたですが・・
##同様の質問
サーバー上のPDFファイルに直接アクセスさせない方法
https://teratail.com/questions/159943
0 コメント