我想知道是否有办法使用jQuery来查找我正在链接到网页的PDF的文件大小。
我想这样做,以便在鼠标悬停在下载链接上时会弹出一个模式框,说明PDF的文件大小。我可以做第二点,我唯一想知道的是如何找出文件大小。我不知道jQuery是否能够做到这一点。如果不是那么太糟糕了我猜..
提前干杯。
答案 0 :(得分:47)
我觉得这对客户端来说太过分了,但我不知道你的应用程序的细节,所以假设你必须用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"));
}
});
答案 1 :(得分: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>
答案 2 :(得分:0)
如果您事先知道文件大小,可以将其放在下载链接的title属性中。您还可以使用jQuery显示自定义弹出窗口。
否则,在没有实际下载整个内容AFAIK的情况下,无法获取URL的文件大小(内容长度)。
答案 3 :(得分:0)
我能想到的唯一方法就是创建一个可以返回PDF文件大小的Web服务。
答案 4 :(得分:0)
在上面的答案中,Chrome 21和Safari 6没有fileSize成员,但确实有大小。使用:
fileInput.files [0] .size