PDF.Js を使用してプレビュー用にPDFファイルを埋め込み、viewer.js
からファイルをダウンロードして開くスクリプトを削除しましたが、テストするとページとPDFファイルを表示しようとすると、Internet Download Managerがダウンロードしてプレビューを中止します。検索後、object
の代わりにiframe
を使用すると問題が解決することがわかりました。 、しかし、PDFビューアが白く表示されませんでした。自動ダウンロードを防ぐにはどうすればよいですか?または別の方法(プラグイン)を使用してPDFファイルの内容を表示します。
<iframe
class="pdf"
webkitallowfullscreen=""
mozallowfullscreen=""
allowfullscreen=""
frameborder="no"
width="'.$width.'"
height="'.$height.'"
src="'.$baseurl.'/assets/pdf/web/viewer.html?file='.urlencode($pdf_url).'"
data-src="'.$pdf_url.'">
'.$pdf_url.'
</iframe>
これは、問題の発生に関連するものではなく、ユーザー固有の環境に関連するものです。
問題:
[〜#〜] idm [〜#〜]を使用して、メディア拡張子で終わる任意のURL(例:* .JPG、*。PNG、* .MP4、*。WMV、*。PDF ..etc)は自動的にダウンロードされますが、ユーザーが[〜#〜] idm [〜#〜]インストールすると、ファイルはブラウザウィンドウにすぐに表示されます。
考えられる解決策:
最後の注意:
開発者として、各ユーザー固有の環境を処理するべきではありません。ユーザーが特定のアプリをインストールして汎用ファイルを処理する場合、開発者の役割ではなく、そのアプリケーションを処理するのはユーザーの役割であると考えられます。このアルゴリズムに従うと、さまざまなユーザー固有のセットアップを処理する無限ループ内にジャンプします。
メインファイルから.pdf
拡張子を削除するだけです。 IDMはそれがどのようなものかを検出できません。しかし、ブラウザはそれをネイティブな方法で処理します。
これで試してみてください
<embed src="'.$baseurl.'/assets/pdf/web/viewer.html?file='.urlencode($pdf_url).'" type="text/html" >
Idm(PdfJs)からの自動ダウンロードを防ぐことができます。 IDMは拡張pdfファイルを見つけるので、pdfファイルをbase-64に変換してから、pdfのbase64をノードDOMsrcに読み込む必要があります。
1。ファイルのPDFをbase64に変換します
document.getElementById('myfiles').addEventListener('change', function(event){
var input = document.getElementById("myfiles");
var fReader = new FileReader();
fReader.readAsDataURL(input.files[0]);
fReader.onloadend = function(event){
document.getElementById("base64").innerHTML = event.target.result;
console.log(event.target.result);
}
});
<input type="file" name="files" id="myfiles" value=""><br>
<textarea id="base64" cols="50"></textarea>
2。すべての文字列base64をtxtファイルに入れます
filename.txt
3。ファイルtxtからbase64を読み取り、iframeまたはviewer.js(PDF JS)に貼り付けます
-iframe should
<iframe scr="data:application/pdf,base64.....">prevent download from idm</iframe>
-with PDFビューア
var xhr = new XMLHttpRequest();
console.log(file);
xhr.open('GET', folderFiles+filename+".txt", true);
xhr.responseType = 'text';
xhr.onload = function(e) {
if (this.status == 200) {
PDFViewerApplication.open(this.response);
}
};
したがって、IDMは特定のファイルを見つけることができないため、PDFファイルを自動的にダウンロードすることを強制しません。リンク: https://github.com/sokhasen/ViewerPDF.git
あなたのコメントから判断すると、あなたのウリは間違っているかもしれません。
uriをオンラインのpdfファイルに置き換えて、残りのコードに問題がないかどうかを確認できます。
PDFオブジェクトを埋め込むだけの場合は、PDFobject.jsを使用してみてください。
https://github.com/pipwerks/PDFObject
http://pdfobject.com/instructions.php
HTML
<div id="my_pdf_object"
class="pdf"
webkitallowfullscreen=""
mozallowfullscreen=""
allowfullscreen=""
frameborder="no"
width="'.$width.'"
height="'.$height.'"
>
It appears you don't have Adobe Reader or PDF support in this web browser.
<a href="'.$baseurl.'/assets/pdf/web/viewer.html file='.urlencode($pdf_url).'">
Click here to download the PDF</a>
</div>
JavaScript
<script type="text/javascript">
//loads pdf files for resume
window.onload = function (){
var success = new PDFObject({
url: "'.$baseurl.'/assets/pdf/web/viewer.html?file='.urlencode($pdf_url).'"
}).embed("my_pdf_object");
};
</script>