2012-12-02 27 views
5

Tôi đang cố gắng sử dụng lớp FormData để gửi dữ liệu đến máy chủ của tôi với HttpRequest.send(). Tôi cần thực hiện yêu cầu POST với nhiều trường. Mã này hoạt động giống như mã Javascript này:Làm cách nào để tự động thêm tệp nhập vào FormData trong Dart?

//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); 
}; 

Nhưng FormData dường như không hoạt động giống như trong Dart. Ai đó có thể giải thích làm thế nào để làm điều này trong Dart, nếu nó có thể?

+1

tôi đã mở http://code.google.com/p/dart/issues/detail?id=7152 để theo dõi yêu cầu này. Bạn có thể vui lòng gắn dấu sao cho lỗi để được thông báo không? –

Trả lời

2

Bạn phải sử dụng FormData.appendBlob: lỗi

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); 
}; 
Các vấn đề liên quan