13

这是我希望做的:

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

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

4

3 回答 3

41

您可以发出 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');
  }
});
于 2009-09-27T20:00:01.023 回答
3

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

于 2009-09-27T19:57:15.640 回答
0
var XHRObj = $.ajax({
    type:'HEAD',
    url:'/',
    success:function(data) {
        console.log( XHRObj.getResponseHeader('Content-Length') )
    }
})

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

于 2009-09-27T20:00:43.420 回答