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();,但不会上传照片。我该如何解决这个问题?
0
files[]
postStatus();
IE10中的XHR不支持FormData。您可以安装Windows 8客户预览版进行尝试。