2012-03-05 5 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); 
} 

Эта функция, кажется, не работает. Когда я вызываю функцию я использую:FormData не работает в Internet Explorer?

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

Когда я удалить 0 из files[], он по крайней мере работает postStatus();, но он не будет загружать фотографии. Как я могу это исправить?

+0

В какой версии IE вы говорите? – Pointy

+0

Internet Explorer 9 – Jake

+1

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

ответ

5

XHR в IE не поддерживает FormData до IE10. Вы можете установить Предварительный просмотр клиента Windows 8, чтобы попробовать.

+3

Зачем мне это нужно, если оно работает в -10 или выше? –

 Смежные вопросы

  • Нет связанных вопросов^_^