質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

0回答

1160閲覧

PDF.jsでドキュメントルート外のPDFを表示させるには。(目的:PDFの直リンクを禁止したい。PDFファイルを外部に漏らしたくない)phpアクセス制限

dub

総合スコア23

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2022/08/01 07:53

編集2022/08/01 08:47

前提

会員制のサイトにてPDF.jsでPDFを表示。
しかし、個人情報が含まれるデータが入っているので、PDFファイルをドキュメントルート上に置いておきたくない。

実現したいこと

ドキュメントルート外においたPDFファイルを、phpで呼び出し、PDF.jsを組み合わせて?
iframeで埋め込みした PDF.jsで表示させたい

上記は目的は会員以外の人が URL直打ちしたときには、ファイルエラーになるようにしたい
ログインしていない人にPDFリンク先を見れないようにするにはどうすればいいでしょうか

発生している問題・エラーメッセージ

そんなときに、まさに 同じ質問されている方・解決済みの質問を見つけたのですが・・

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; }

それと PDF URL直打ちの問題解決されている質問
https://teratail.com/questions/34150

試したこと

pythonはかじった程度でわかりますが、phpとjavascriptは全く理解していないため、自己解決された とされる 方法を何度読んでも 具体的な方法がわかりません。(設置場所、コード)

最初はPDFの保存しているフォルダにベーシック認証をかけて PDF.jsで読み込みできたら・・と考えていたのですが、
いろいろ調べているうちに、ドキュメントルート外において、PHPで画像を呼び出すのが一番早い・・と 2,3個の質問の回答に記載があり
https://teratail.com/questions/303125

さらにPDF.jsで呼び出す 自己解決の方法があったので、まさにこれが一番だと考えたですが・・

↓下記の方法は phpで画像を呼び出す事は実現できましたが URL直打ちでも表示されてしまうのですが・・

・PHP ベーシック認証をして画像を表示させたい
https://teratail.com/questions/303125

##同様の質問
サーバー上のPDFファイルに直接アクセスさせない方法
https://teratail.com/questions/159943

PDF URL直打ちの問題解決されている質問
https://teratail.com/questions/34150

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問