web-dev-qa-db-ja.com

jQueryでダウンロードリンクの背後にあるファイルのサイズを見つける

JQueryを使用してPDF私がWebページにリンクしていることを示す)のファイルサイズを確認する方法があるかどうか疑問に思いました。

ダウンロードリンクにカーソルを合わせると、モーダルボックスがポップアップしてPDFのファイルサイズを表示するようにします。私は2番目のビットを実行できます。知りたいのは、ファイルサイズを確認する方法だけです。 jQueryがこれに対応しているかどうかはわかりません。そうでなければ、あまりにも悪いと思います。

事前に乾杯。

27
Seedorf

これはクライアント側で行うには多すぎるように感じますが、アプリケーションの詳細がわからないので、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"));
    }
  });
47
masto

サーバーにファイルをアップロードしようとしている場合に、サーバーにアクセスせずに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>
12

上記の答えでは、Chrome 21とSafari 6にはfileSizeメンバーはありませんでしたが、サイズはあります。使用:

fileInput.files [0] .size

0
Saeven

事前にファイルサイズがわかっている場合は、ダウンロードリンクのtitle属性にそのサイズを入れることができます。 jQueryを使用してカスタムポップアップを表示することもできます。

そうしないと、コンテンツ全体を実際にダウンロードせずに、URLのファイルサイズ(コンテンツの長さ)だけを取得する方法はありません。

0
Chetan Sastry

これを行うには、PDFのファイルサイズを返すWebサービスを作成するしかありません。

0
Corey Sunwold