За последние 24 часа нас посетили 34470 программистов и 1693 робота. Сейчас ищут 644 программиста ...

Загрузка файла на сервер с использованием ajax

Тема в разделе "PHP для новичков", создана пользователем shurik_shink, 29 дек 2015.

  1. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Во всех интернет ресурсах где рассматривается загрузка файлов - загрузка выполняется php скриптом который на который отправляются данные формы после операции "submit".
    Я ищу способ передать файл на загрузку в скрипт php используя ajax. Основная цель - не покидать web форму в котрой пользователь выбирает файл.

    Ниже привожу упрощенный пример для лучшего понимания вопроса

    Простейшая форма для загрузки файл
    Код (PHP):
    1. <form id="reg_form" name="reg_form" method="post" enctype="multipart/form-data" action="simple.php">
    2. <input type="hidden" name="MAX_FILE_SIZE" value="10500000"/>
    3. <input type="file" name="pic" accept="image/jpg" size="30"/>
    4. <input type="submit" name="to_load" value="загрузить изображение"/>
    5. </form> 
    простейший скрипт по загрузке файла
    simple.php
    Код (PHP):
    1. <?php
    2. move_uploaded_file($_FILES["pic"]["tmp_name"], "tmp/loaded_img.JPG");
    3. ?>
    Можно ли как то выполнить simple.php через ajax, а не после операции submit?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Это не взаимоисключающие вещи. Просто вызывай свой ajax по событию onsubmit формы. При этом сама форма отправлена на сервер не будет, но ты сможешь сериализовать ее и отправить скрипту без перезагрузки страницы.
     
  3. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Если я правильно понял, для кнопки type="submit" надо определить обработчик onsubmit в котором будет выполнен ajax запрос и при этом перенаправления на скрипт simple.php, который будет обрабатывать загружнный файл, не произойдет.

    Как в ajax запросе передать файл который пользователь выбрал? У меня именно с этим все трудности.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Я пользую обычно jquery form, он умеет файлы передавать из обычных форм. А так, HTML5 file api или флеш, или есть ещё способов дофига. Но вручную делать без существующих плагинов замарочно ajax-передачу файлов
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    флеш это плоть. вспышка все же флэш :D