13

これが私がやりたいことです:

ajaxリクエストをファイルに(できればjQueryを使用して)送信したいのですが、ファイルがロードされたら、リクエストされたファイルのサイズを決定します。

少しグーグルした後、私がこれを理解するために尋ねる正しい質問についての良い考えさえ持っていないことは明らかです。どんな助けでも大歓迎です。

4

3 に答える 3

41

HTTP HEADリクエストを作成し、 Content-LengthHTTPヘッダーを読み取ることでおおよそのファイルサイズを取得できます。

この種のリクエストは、レスポンスでコンテンツを転送することなく、リクエストによって暗示される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 に答える