AJAX – Загрузка файла (HTML 5) и PHP

Я чувствую себя полностью из глубины, но чувствую себя так близко.

Я пытаюсь загрузить файл с помощью AJAX. Я нашел этот учебник http://blog.new-bamboo.co.uk/2010/7/30/html5-powered-ajax-file-uploads, и, похоже, он добирался до конца. Я не могу получить доступ к файлу в PHP, то есть использовать $ _FILES ["foo"] ["name"]; и я не уверен, как загрузить с помощью других методов.

Я не ищу, чтобы код был совершенным, просто оставался простым, чтобы я мог понять, что происходит. Заранее спасибо 🙂

Вот мой код на стороне сервера:

HTML: название страницы

</head> <body> <form onsubmit='showUser(); return false;' enctype='multipart/form-data'> <input id='the-file' name='file' type='file' /> <input type='submit'> </form> <br /> <div id='txtHint'><b></b></div> </body> 

Javascript:

 function showUser(str) { var fileInput = document.getElementById('the-file'); var file = fileInput.files[0]; var foo = file.fileName; if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("POST","new_film_pro.php",true); xmlhttp.setRequestHeader("Content-type", "multipart/form-data"); xmlhttp.setRequestHeader("X-File-Type", file.type); xmlhttp.setRequestHeader("X-File-Name", foo); xmlhttp.send(file); } 

PHP:

 <?php $postdata = file_get_contents("php://input"); echo "Name: " . $_SERVER['HTTP_X_FILE_NAME'] . "<br />"; ?>