jQueryを使用して、WebページにリンクしているPDFのファイルサイズを見つける方法があるかどうか疑問に思いました。
ダウンロードリンクにカーソルを合わせると、PDFのファイルサイズを示すモーダルボックスがポップアップするようにしたいと思います。私は2番目のビットを行うことができます、私が知りたい唯一のことはファイルサイズを見つける方法です。jQueryがこれに対応できるかどうかはわかりません。そうでなければ、私は推測します。
よろしくお願いします。
これはクライアント側で行うには多すぎるように感じますが、アプリケーションの詳細がわからないため、jQueryで行う必要があると想定しています...HEADリクエストを実行してコンテンツを確認できます-長さヘッダー。以前はjqHeadプラグインをお勧めしましたが、使用しようとすると壊れていることがわかりました。
追加のプラグインに依存しない実用的な例を次に示します。http://host.masto.com/~chris/so/jqhead.html
その肉は非常に単純です:
var request;
request = $.ajax({
type: "HEAD",
url: $("#url").val(),
success: function () {
alert("Size is " + request.getResponseHeader("Content-Length"));
}
});
これは、ファイルをサーバーにアップロードしようとしている場合に、サーバーに移動せずにjavascriptでファイルサイズを見つけるための作業スニペットです。
このアイデアは、大きなファイルをサーバーにアップロードする前にファイルサイズを制限するのに役立ちます。
<input type="file" id="loadfile" />
<input type="button" value="find size" onclick="findSize()" />
<script type="text/javascript">
function findSize() {
var fileInput = $("#loadfile")[0];
alert(fileInput.files[0].size); // Size returned in bytes.
}
</script>
事前にファイルサイズがわかっている場合は、それをダウンロードリンクのtitle属性に入れることができます。jQueryを使用してカスタムポップアップを表示することもできます。
そうしないと、コンテンツ全体を実際にダウンロードせずに、URLのファイルサイズ(コンテンツの長さ)だけを取得する方法はありません。
これを行うために私が考えることができる唯一の方法は、PDFのファイルサイズを返すWebサービスを作成することです。
上記の回答では、Chrome21とSafari6にはfileSizeメンバーがありませんでしたが、サイズはあります。使用する:
fileInput.files [0] .size