使用JavaScript检测链接的href的文件大小

时间:2010-05-18 19:07:45

标签: javascript ajax iis

想编写一个脚本来检测网页上链接目标的文件大小。

现在我有一个函数可以找到PDF文件的所有链接(即href以'.pdf'结尾)并将字符串'[pdf]'附加到innerText。我想扩展它,以便我还可以附加一些文本,告知用户目标是一个大文件(例如大于1MB)。

由于

3 个答案:

答案 0 :(得分:4)

假设文件位于同一个域下,您应该能够使用XMLHttpRequest执行HEAD请求。

然而,这应该是在服务器端真正做到的事情。使用额外请求执行此操作无任何好处。

答案 1 :(得分:4)

某些网络服务器可能会为Content-Length请求提供HEAD标头。您可以使用XmlHttpRequest发送HEAD请求并查看您获得的内容。

以下是我的一个IIS服务器所说的PDF文件:

HTTP/1.1 200 OK
Content-Length: 127791
Content-Type: application/pdf
...

但是,除非脚本专门处理HEAD请求,否则Web服务器(由PHP或ASP.net提供的文件)直接传递的任何内容都将无效。

答案 2 :(得分:0)

你不能这样做,或者至少 - 不能以任何实际的跨浏览器方式。

如果您事先知道文件大小,例如在生成链接到文件的文档时,您可以将大小硬编码到HTML文档中。

<a href="large_file.pdf" onclick="return confirm('Want to download a large file?')">large_file.pdf</a>