5

FormDataクラスを使用して、HttpRequest.send()を使用してサーバーにデータを送信しようとしています。複数のフィールドでPOSTリクエストを行う必要があります。これは、次のJavascriptコードと同じように機能するはずです。

//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はDartでは同じようには機能しないようです。可能であれば、誰かがDartでこれを行う方法を説明できますか?

4

2 に答える 2

3

残念ながら、これはバグのようです。追跡する問題http://code.google.com/p/dart/issues/detail?id=7152を開きました。ユースケースをありがとう。

于 2012-12-05T11:44:11.667 に答える
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);
};
于 2014-03-24T08:22:43.400 に答える