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 回答