Javascript检查文件大小

如果Web服务器上文件文件大小(例如 http://www.mysite.com/myfile.js)大于0字节,是否可以继续使用javascript进行检查?如果是,则返回true或false值?

提前致谢!

解决方法

从理论上讲,您可以使用XHR发出HTTP HEAD请求并检查响应头中的Content-Length.

HEAD请求与常规GET请求相同,但服务器不得返回实际内容.换句话说,服务器会回复您尝试获取资源时的标头,但随后停止并且不发送文件.

但是,无论文件的实际大小如何,some severs respond到Content-Length标头为0的HEAD请求.其他人回应文件的大小.

为了实现这一点,您必须祈祷您的服务器将文件的实际大小返回给HEAD请求.

如果是,getting that value is easy

$.ajax('/myfile.js',{
    type: 'HEAD',success: function(d,r,xhr) {
       fileSize = xhr.getResponseHeader('Content-Length');
    }
});

请注意,当我们HEAD /时,JSfiddle的服务器总是返回0,即使/是16916字节.

还要注意关于HTTP请求类型选项的jQuery的docs say

The type of request to make (“POST” or “GET”),default is “GET”. Note: Other HTTP request methods,such as PUT and DELETE,can also be used here,but they are not supported by all browsers.

我刚刚在IE 6-10,Firefox 3.6-7,Opera 9-11和Chrome中测试了这个小提琴,并且每个浏览器都正确发出了HEAD请求,因此我不担心这种模糊的不兼容性声明.更值得关注的是您的服务器如何响应.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...