Основы AJAX: Передача данных с помощью IFRAME

Тема в разделе "WASM.BEGINNERS", создана пользователем tnirof, 26 июл 2009.

  1. tnirof

    tnirof New Member

    Публикаций:
    0
    Регистрация:
    17 май 2006
    Сообщения:
    23
    Адрес:
    Russia
    добрый день ребята.
    столкнулся с такой проблемой... использую загрузку файла без перезагрузки самой страници, сделал все как "надо" (наверно ), а итог нулевой...
    подскажите пожалуйста где моя ошибка ...


    код скрипта явы + форма
    Код (Text):
    1. <script type="text/javascript">
    2. function createIFrame() {
    3.   var id = 'f' + Math.floor(Math.random() * 99999);
    4.   var div = document.createElement('div');
    5.   div.innerHTML = '<iframe style="display:none" src="about:blank" id="'+id+'" name="'+id+'" onload="sendComplete(\''+id+'\')"></iframe>';
    6.   document.body.appendChild(div);
    7.   return document.getElementById(id);
    8. }
    9.  
    10. function sendForm(form, url, func, arg) {
    11.   if (!document.createElement) return; // not supported
    12.   if (typeof(form)=="string") form=document.getElementById(form);
    13.   var frame=createIFrame();
    14.   frame.onSendComplete = function() { func(arg, getIFrameXML(frame)); };
    15.   form.setAttribute('target', frame.id);
    16.   form.setAttribute('action', url);
    17.   form.submit();
    18. }
    19.  
    20. function sendComplete(id) {
    21.   var iframe=document.getElementById(id);
    22.   if (iframe.onSendComplete && typeof(iframe.onSendComplete) == 'function') iframe.onSendComplete();
    23. }
    24.  
    25. function getIFrameXML(iframe) {
    26.   var doc=iframe.contentDocument;
    27.   if (!doc && iframe.contentWindow) doc=iframe.contentWindow.document;
    28.   if (!doc) doc=window.frames[iframe.id].document;
    29.   if (!doc) return null;
    30.   if (doc.location=="about:blank") return null;
    31.   if (doc.XMLDocument) doc=doc.XMLDocument;
    32.   return doc;
    33. }
    34.  
    35. var cnt=0;
    36.  
    37. function uploadComplete(element, doc) {
    38.   if (!doc) return;
    39.   if (typeof(element)=="string") element=document.getElementById(element);
    40.   element.innerHTML='Результат запроса #'+(++cnt)+': '+doc.documentElement.firstChild.nodeValue;
    41. }
    42.  
    43. </script>
    44.  
    45. <form id="ajaxUploadForm" method="post" enctype="multipart/form-data" onsubmit="sendForm(this, 'html://oplya.ru/uploadFile.php', uploadComplete, 'resultDiv');return true;">
    46. <label>Файл: <input type="file" name="uploadFile" /></label>
    47. <input type="submit" value="Загрузить" />
    48. </form>
    49. <input type="button" value="Альтернативный вызов загрузки файла" onclick="sendForm('ajaxUploadForm', 'html://oplya.ru/uploadFile.php', uploadComplete, 'resultDiv')" />
    50. <div id="resultDiv"></div>
    код пхп файла
    Код (Text):
    1. <?php
    2. $file = $_POST['file'];
    3. $file_dir = 'files'; //В какую папку грузим
    4. $new_file_name = $_SERVER["REMOTE_ADDR"];
    5. $new_file_name = $new_file_name.'.gif';
    6. $oldname = $_FILES['file']["tmp_name"];
    7. $new_name = $file_dir.'/'.$new_file_name;
    8. if (move_uploaded_file($oldname, $new_name))
    9. {
    10.   Header("location:##");
    11. }
    12. ?>
    в ответ пишет null и файл не заливается..
    сорри за орфографию - 4 утра.. =((
     
  2. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Грузится не 'file' а его имя т.е 'uploadFile'
     
  3. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    например:

    Код (Text):
    1. if(isset($_FILES["uploadFile"]))
    2. {
    3. $file = $HTTP_POST_FILES['uploadFile']['name'];
    4. $filesize = $HTTP_POST_FILES['uploadFile']['size'];
    5. $temp = $HTTP_POST_FILES['uploadFile']['tmp_name'];
    6. }
     
  4. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    Наверно кто-то щас банан получит :)))
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    ТС просто форумом ошибся