Отправка multipart/form-data используя jQuery ajax

Maza

Постоялец
Регистрация
2 Июл 2007
Сообщения
255
Реакции
120
Подскажите как отправить изображение на сервер вместе с POST параметрами. Пытался сделать так, но не работает.
HTML:
<script>
    function ajax_send (ajdata,ajecho){
        $.ajax({
            type: 'POST',
            enctype: 'multipart/form-data',
            url: 'add.php',
            cache: false,
            contentType: false,
            processData: false,           
            data: ajdata,
            success: function(html){
                $(ajecho).fadeOut(100 , function(){ $(this).html(html); }).fadeIn( 500 );
          }
        });
       
        return false;
    }
   
    $(document).ready(function(){
        $('#add_data').submit(function(){
            var photocheck = ($('#photo_check').is(":checked")) ? 'ok' : 'no';
            var data = new FormData();
            data = $("#photo")[0].files[0];
           
            return ajax_send('photo_check='+photocheck+'&photo='+data+'&add=adddata','div#content_reg');
        });
       
    });
</script>
В приложении исходник. Читал, что можно ещё с помощью плагина Для просмотра ссылки Войди или Зарегистрируйся, но так и не допёр, как подскажите, кто сталкивался уже с этим.
 

Вложения

  • JqA.rar
    35,9 KB · Просмотры: 4
Я тоже долго старался и перерыл интернет, но нужный код к сожалению не получилось .
Пришлось использовать дополнительные плагины на jquery
- Для просмотра ссылки Войди или Зарегистрируйся
- Для просмотра ссылки Войди или Зарегистрируйся (я сам использую эту версию) если немного поработать то можно полностью переделать под себя, что я и советую)

ПС: если найдётся способ отправки через функцию AJAX, то мне тоже интересно будет посмотреть на код)
 
  • Нравится
Реакции: Maza
Убив ещё пару часов, нашёл рабочий пример для html5, в остальных браузерах к сожалению не работает.
 
Можно попробовать обернуть file input в форму и использовать сериализацию формы в JS.
var serializedForm=$('#form').serialize();
И отправить эту переменную в data. Сериализация должна помочь в корректной отправке изображения.
 
Для решения вопроса я использовал Для просмотра ссылки Войди или Зарегистрируйся, работает и в старых браузерах.
 
Последнее редактирование:
Назад
Сверху