FormData ไม่ทำงานใน Internet Explorer?

    function uploadPhoto(file) {
    if (!file || !file.type.match(/image.*/)){
        if(!file){
            postStatus();
        } else {
            return;
        }
    }
    var fd = new FormData();
    fd.append("image", file);
    fd.append("privacy", document.getElementById('privacy-handler').value);
    var xhr = GetXmlHttpRequest(); 
    xhr.open("POST", "url here");
    slideUp('photo-upload');
    slideDown('photo-manager-txt');
    document.getElementById("photo-manager-txt").innerHTML='<i>Please wait a moment while we process your photo.</i>';
    xhr.onload = function() {
        if(xhr.responseText == '0'){
            document.getElementById('photo-manager-txt').innerHTML='<br />Photo upload failed';
            slideDown('photo-upload');
            return;
        } else {
            document.getElementById('photo-txt').value='grab?v=1&file='+xhr.responseText;
            document.getElementById('photo-manager-txt').innerHTML='Photo uploaded and shared.';
            postStatus();
        }
    }
    xhr.send(fd);
}

ดูเหมือนว่าฟังก์ชันนี้จะไม่ทำงาน เมื่อฉันเรียกใช้ฟังก์ชันที่ฉันใช้:

onClick="uploadPhoto(document.getElementById('ID-HERE').files[0]);"

เมื่อฉันลบ 0 ออกจาก files[] อย่างน้อยมันจะรัน postStatus(); แต่จะไม่อัปโหลดรูปภาพ ฉันจะแก้ไขปัญหานี้ได้อย่างไร?


person Jake    schedule 05.03.2012    source แหล่งที่มา
comment
คุณกำลังพูดถึง IE เวอร์ชันใด?   -  person Pointy    schedule 06.03.2012
comment
api ของไฟล์ caniuse.com   -  person epascarello    schedule 06.03.2012
comment
ฉันคิดว่านั่นคือปัญหา @Jake ไม่รองรับไฟล์ API จนถึง IE10   -  person Pointy    schedule 06.03.2012


คำตอบ (1)


XHR ใน IE ไม่รองรับ FormData จนถึง IE10 คุณสามารถติดตั้ง Windows 8 Customer Preview เพื่อทดลองใช้งานได้

person Samuel Zhang    schedule 06.03.2012