【问题标题】:How do I dynamically add a file input to FormData in Dart?如何在 Dart 中动态地将文件输入添加到 FormData?
【发布时间】:2012-12-02 19:42:10
【问题描述】:

我正在尝试使用 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 中执行此操作吗?

【问题讨论】:

标签: 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);
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2015-10-11
      • 2019-11-13
      • 1970-01-01
      相关资源
      最近更新 更多