2012-12-02 22 views
5

FormDataクラスを使用してHttpRequest.send()を使用してサーバーにデータを送信しようとしています。私は複数のフィールドを持つPOST要求を行う必要があります。DartのFormDataにファイル入力を動的に追加するにはどうすればよいですか?

//Upload File 
var uploadFile = function(file, tag, callback) 
{ 
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', "upload/", true); 
    xhr.onreadystatechange=function() 
    { 
     if (xhr.readyState==4 && xhr.status==200) 
     { 
      callback(); 
     } 
    } 
    var formData = new FormData(); 
    formData.append('file', file); 
    formData.append('tag', tag); 
    var csrftoken = $.cookie('csrftoken'); 
    xhr.setRequestHeader("X-CSRFToken", csrftoken); 
    xhr.send(formData); 
}; 

をしかしいるFormDataはダートで同じように動作していないよう:それはこのJavaScriptコードと同じように動作するはずです。可能であれば、誰かがDartでこれを行う方法を説明できますか?

+1

を、私はこの要求を追跡するために、バグhttp://code.google.com/p/dart/issues/detail?id=7152を開きました。あなたは通知するバグを星にしてくださいできますか? –

答えて

2

あなたがFormData.appendBlobを使用する必要があります:

void uploadFile(File file, String tag, callback) { 
    final xhr = new HttpRequest(); 
    xhr.open('POST', "upload/", true); 
    xhr.on.readyStateChange.add((e) { 
    if (xhr.readyState == 4 && xhr.status == 200) { 
     callback(); 
    } 
    }); 
    final formData = new FormData(); 
    formData.appendBlob('file', file); 
    formData.append('tag', tag); 
    xhr.send(formData); 
}; 
関連する問題