jQueryでダウンロードリンクの背後にあるファイルのサイズを見つける
質問
jQueryを使用して、WebページにリンクしているPDFのファイルサイズを確認する方法があるかどうか疑問に思っていました。
ダウンロードリンクにカーソルを合わせると、PDFのファイルサイズを示すモーダルボックスがポップアップ表示されるようにします。私は2番目のビットを行うことができます、私が知りたい唯一のことは、ファイルサイズを見つける方法です。 jQueryがこれに対応しているかどうかはわかりません。そうでない場合は、あまりにも悪いと思います。
事前に乾杯。
解決
これはクライアントサイドで行うには多すぎると思いますが、アプリケーションの詳細がわからないので、jQueryでそれを行う必要があると仮定して... HEADリクエストを実行して見ることができますContent-Lengthヘッダー。以前、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サービスを作成することです。
上記の回答では、Chrome 21とSafari 6にはfileSizeメンバーはありませんが、サイズはあります。使用:
fileInput.files [0] .size