2013-11-15 4 views
0

Я создаю форму, которая захватывает данные пользователя и изображение профиля, я программирую это в jquery ui (модальная форма) и отправляя jquery ajax post, на стороне сервера (PHP5.2) нужно получить значение переменной $ _File и другие значения имени пользователя, электронной почты, пароля, хорошо, моя проблема заключается в доставке данных и изображений. Я надеюсь, что вы меня поняли, и я могу помочьКак отправить данные на сервер с изображением?

Код HTML

<div id="dialog-form" title="Create new user"> 
       <p class="validateTips"> 
        All form fields are required.</p> 
       <form id="formulario"> 
        <fieldset> 
         <label for="name"> 
          Name</label> 
         <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" /> 
         <label for="email"> 
          Email</label> 
         <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" /> 
         <label for="password"> 
          Password</label> 
         <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" /> 

        </fieldset> 
        <div id="content-image-user"> 
         <div id="imageuser"></div> 
        </div> 
        <div class="ui-widget"><label for="photo">Photo: </label><input type="file" name="photo" class="ui-autocomplete-input ui-widget-content ui-corner-all"></div> 
       </form> 
      </div> 

КОД JS

$("#dialog-form").dialog({ 
    autoOpen: false, 
    height: 620, 
    width: 480, 
    modal: true, 
    buttons: { 
     "Create an account": function() { 
      //allFields.removeClass("ui-state-error"); 
      var info = $("#formulario").serialize();// 
      //Here!! 
      // How data gathering more data in the image? 
      console.log(info); 
      $.post("AddUser.php", info, function(data) { 
       console.log(data); 
       $('#grid-data').load("GridData.php", function() { 
        //console.log('load data OK'); 
       }); 
      }); 
      $(this).dialog("close"); 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
    }, 
    close: function() { 
     //allFields.val("").removeClass("ui-state-error"); 
    } 
}); 

приветы благодаря MauricioHz Сантьяго, Чили

+0

Ajax не может сделать загрузку файлов. Стандартное обходное решение - клонировать вашу форму в скрытый iframe и выполнять обычную загрузку на основе POSt: http://www.php.net/manual/en/features.file-upload.post-method.php –

+0

Вы можете Не загружайте файлы через AJAX. Вам нужно использовать iFrame, Flash или xmlhttprequest2 –

+0

Отправьте свой код 'AddUser.php', чтобы мы могли видеть, что делает PHP, обрабатывающий запрос AJAX. Кроме того, вы можете просто загрузить изображение на сервер, а затем отправить ссылку в запросе AJAX. В противном случае вы будете хранить изображение в базе данных как двоичную, а не файловую систему. – Ennui

ответ

-1

Печально, что Ajax не может загрузить файл для javascript, который не может обрабатывать локальный файл.

обычно есть 3 способа.

1.base64encode содержимое изображения, затем вы получите строку base64encoded. отправьте строку на сервер. сервер получает содержимое изображения путем декодирования строки

  1. использовать Flash Загрузить файл. js и flash взаимодействуют для реализации загрузки файлов.

  2. использование iframe. javascript обрабатывает динамический html dom, запускает событие отправки, затем вы можете получить отключенный поток.

Смежные вопросы