用jQuery查找下载链接后的文件大小

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

我想这样做,以便hover在下载链接上,popup一个模式框,说PDF的文件大小。 我可以做第二位,我唯一想知道的是如何找出文件大小。 我不知道如果jQuery是有能力的。 如果不是那么糟糕,我猜..

提前欢呼。

我觉得这样做太过于客户端,但我不知道你的应用程序的细节,所以假设你必须用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")); } }); 

这里是工作片段,find在JavaScript的文件大小,而不去服务器,如果你要上传文件到服务器。

这个想法有助于在将大file upload到服务器之前限制文件大小。

 <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> 

如果您事先知道文件大小,可以将其放入下载链接的标题属性中。 你也可以使用jQuery来显示一个自定义的popup窗口。

否则,在没有实际下载整个内容AFAIK的情况下,没有办法获得URL的文件大小(内容长度)。

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

在上面的答案中,Chrome 21和Safari 6没有fileSize成员,但是具有大小。 使用:

fileInput.files [0] .size