2012-12-02 2 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는 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); 
}; 
관련 문제