获取通过ajax请求的文件大小

时间:2009-09-27 19:52:25

标签: jquery ajax filesize

这是我希望做的事情:

我想向文件发送ajax请求(最好使用jQuery),一旦加载了文件,就确定所请求文件的大小。

经过一番谷歌搜索,很明显我甚至不知道正确的问题要求弄清楚这一点。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:40)

您可以发出HTTP HEAD请求,并通过阅读Content-Length HTTP标头获取文件大小近似值。

此类请求用于获取有关请求所暗示的URL的元信息,而不会在响应中传输任何内容。

var xhr = $.ajax({
  type: "HEAD",
  url: "path/to/file.ext",
  success: function(msg){
    alert(xhr.getResponseHeader('Content-Length') + ' bytes');
  }
});

答案 1 :(得分:2)

您可以创建一个服务器端命令,该命令获取文件的路径和名称,打开文件以获取长度,然后将大小发送回客户端。如何操作取决于您使用的服务器端语言。这是你正在寻找的行动类型吗?

答案 2 :(得分:0)

var XHRObj = $.ajax({
    type:'HEAD',
    url:'/',
    success:function(data) {
        console.log( XHRObj.getResponseHeader('Content-Length') )
    }
})

您基本上执行HEAD HTTP请求并查询Content-Length,它返回X个字节。