Привет форумчане! В общем столкнулся с проблемой А именно загрузка картинок на ajax Облазил пол гугла, но не нашел стоящего ajax скрипта PHP: <?php set_time_limit(0); define ( 'ROOT_DIR', dirname ( __FILE__ ) ); define ( 'ENGINE_DIR', ROOT_DIR . '/exe' ); define ( 'SCRIPT', true ); if($_GET['send'] == "file") { header("Content-Type: text/html;charset=windows-1251"); include ENGINE_DIR . '/configuration.php'; $name = $_FILES["filename"]["name"]; if(empty($_FILES["filename"]["name"])) echo "Выбирите картинку(".$name.")<br>"; if(!empty($_FILES["filename"]["name"])) { if($_FILES["filename"]["size"] > 1024*10*1024) echo "Размер файла превышает <b>10 мегабайт</b><br>"; if($_FILES['userfile']['type'] != "image/gif" || $_FILES['userfile']['type'] != "image/jpg" || $_FILES['userfile']['type'] != "image/png") { echo "К загрузке допускаются только GIF,JPG,PNG картинки<br>"; } } if(!empty($_FILES['filename']) && $_FILES["filename"]["size"] < 1024*10*1024 && $_FILES['userfile']['type'] == "image/gif" || $_FILES['userfile']['type'] == "image/jpg" || $_FILES['userfile']['type'] == "image/png") { if(!isset($_COOKIE['files'])) { $tmp_name = totranslit(trim($_FILES["filename"]["name"])); $prefix = time(); $tmp_name = "".$prefix."_".$tmp_name.""; $url = str_replace("mail.php",'',$_SERVER['PHP_SELF']); if(copy($_FILES["filename"]["tmp_name"],"".$_SERVER['DOCUMENT_ROOT']."".$url."download/images/".$tmp_name)) { //заносим в базу mysql_query("INSERT INTO " . PREFIX . "_images SET tmp_name='$tmp_name'"); echo iconv("UTF-8", "WINDOWS-1251", 'html'); setcookie("files",md5(time()),time()+30); } else echo "Возникла ошибка загрузки"; } } } else { echo <<<HTML <html> <head> <title>IT WORKS</title> <meta http-equiv="content-type" content="text/html;charset=windows-1251"> <script language="JavaScript"> function createXMLHttp() { if(typeof XMLHttpRequest != "undefined") { // для браузеров аля Mozilla return new XMLHttpRequest(); } else if(window.ActiveXObject) { // для Internet Explorer (all versions) var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ]; for (var i = 0; i < aVersions.length; i++) { try { // var oXmlHttp = new ActiveXObject(aVersions[i]); return oXmlHttp; } catch (oError) { } } throw new Error("Невозможно создать объект XMLHttp."); } } /* Очень важная функция, обратите на неё внимание. Формирует строку запроса "name1=value1&name2=value2&name3...". Принимает один аргумент - ссылку на форму. */ function getRequestBody(oForm) { var aParams = new Array(); for(var i = 0; i < oForm.elements.length; i++) { var sParam = encodeURIComponent(oForm.elements[i].name); sParam += "="; sParam += encodeURIComponent(oForm.elements[i].value); aParams.push(sParam); } return aParams.join("&"); } /* В этой ф-ции мы создаём объект XmlHttp, формируем запрос, инициализируем перехватчик состояний onreadystatechange, и посылаем наш запрос. Обратите внимание, что во втором аргументе метода open(..) мы передаём ссылку на oForm.action, это сделано как из соображений безопасности, так и ради того что-бы сценарий можно-было бы использовать для работы с несколькими страницами. Так-же, стоит отметить факт отправки дополнительного заголовка: "appilaction/x-www-form-urlencoded" Большинство языков (в том числе и PHP), требуют этого, для корректного выполнения синтаксического анализа пришедших данных. Этот момент очень важен. */ function sendRequest() { var oForm = document.forms[0]; var sBody = getRequestBody(oForm); var oXmlHttp = createXMLHttp(); oXmlHttp.open("POST",oForm.action, true); oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); oXmlHttp.onreadystatechange = function() { if(oXmlHttp.readyState == 4) { if(oXmlHttp.status == 200) { saveResult(oXmlHttp.responseText); } else { saveResult("Ошибка: " + oXmlHttp.statusText); } } }; oXmlHttp.send(sBody); } function saveResult(sText) { var sElem = document.getElementById("divStatus"); sElem.innerHTML = sText; } </script> </head> <body> <center> <form method="POST" action="mail.php?send=file" OnSubmit="sendRequest(); return false0"> <pre> <p>Выбирите картинку:<br> Картинка: <input type="file" name="filename"><br> <input type="submit" value="Загрузить"></p><br> </pre> </form> <pre><div id="divStatus"></div></pre> </center> </body> </html> HTML; } ?> В общем на выходе получается, что POST данные не отправляется В общем знатоки, что не так? Подкиньте нормальный ajax скрипт
что в итоге нужно поподробнее? не это ? http://habrahabr.ru/blogs/jquery/50223/ только допилить чтобы возвращало картинку обратно на страничку