2012-03-05 18 views
4
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); 
} 

この機能は動作していないようです。私は、関数を呼び出すときに私が使用している:私はfiles[]から0を削除するとFormDataはInternet Explorerで動作していませんか?

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

を、その少なくともはpostStatus();を実行しますが、それは写真がアップロードされません。これを修正するにはどうすればいいですか?

+0

あなたは、どのバージョンのIEについて話していますか? – Pointy

+0

Internet Explorer 9 – Jake

+1

[caniuse.com file api](http://caniuse.com/#search=file%20api) – epascarello

答えて

5

IEのXHRは、IE10までFormDataをサポートしていません。試しにWindows 8 Customer Previewをインストールすることができます。

+3

ie-10以上で動作するのはなぜでしょうか? –

関連する問題