Get size of file requested via ajax

安稳与你 提交于 2019-11-26 16:29:53

问题


Here's what I'm hoping to do:

I want to send an ajax request to a file (preferably with jQuery), and once the file has been loaded, determine the size of the requested file.

After a bit of googling, it's clear that I don't even have a good idea of the right question to ask to figure this out. Any help would be greatly appreciated.


回答1:


You could make a HTTP HEAD request, and get a file size approximate by reading the Content-Length HTTP Header.

This kind of request is used to obtain meta-information about the URL implied by the request, without transferring any content of it in the response.

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



回答2:


You could create a server-side command that takes the path and name of the file, opens the file to get the length, and sends the size back to the client. How you do it would depend on what server-side language you're using. Is that the type of action you're looking for?




回答3:


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

You basically do a HEAD HTTP request and query the Content-Length, which returns X bytes.



来源:https://stackoverflow.com/questions/1484303/get-size-of-file-requested-via-ajax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!