28

我想知道是否有一种方法可以使用 jQuery 来找出我链接到网页的 PDF 的文件大小。

我想这样做,以便在将鼠标悬停在下载链接上时,会弹出一个模式框,说明 PDF 的文件大小。我可以做第二点,我唯一想知道的是如何找出文件大小。我不知道 jQuery 是否能够做到这一点。如果不是那么太糟糕了我猜..

提前喝彩。

4

5 回答 5

48

我觉得做客户端太多了,但我不知道你的应用程序的细节,所以假设你必须用 jQuery 来做......你可以做一个 HEAD 请求并查看 Content-长度标头。之前我推荐了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"));
    }
  });
于 2009-09-17T19:12:52.060 回答
12

如果您要将文件上传到服务器,这是在 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>
于 2011-01-13T01:47:20.827 回答
0

在上面的答案中,Chrome 21 和 Safari 6 没有 fileSize 成员,但确实有 size。利用:

文件输入.files[0].size

于 2012-10-20T02:23:32.507 回答
0

如果您事先知道文件大小,可以将其放在下载链接的标题属性中。您还可以使用 jQuery 显示自定义弹出窗口。

否则,如果不实际下载整个内容 AFAIK,就无法仅获取 URL 的文件大小(内容长度)。

于 2009-09-17T19:04:22.773 回答
0

我能想到的唯一方法是创建一个 Web 服务,它会返回 PDF 的文件大小。

于 2009-09-17T19:05:44.643 回答