php
  • jquery
  • ajax
  • file
  • 2016-04-14 2 views 0 likes 
    0

    Я пытаюсь загрузить файл изображения на сервер, но $ _FILE всегда пуст, и я не знаю почему.

    Вот HTML:

    <form action='' id='ajax_form' method='post' enctype="multipart/form-data"> 
         <input type='file' name='imagem'> 
         <input type='submit' id='btUploadImagem' value='Upload'> 
        </form> 
    

    А вот JQuery скрипт:

    function salvaImagem(){ 
    
        var form = $(this).closest('form'); 
        var formData = new FormData(form); 
        var dados = formData; 
        jQuery.ajax({ 
         type: "POST", 
         url: "salvaImagem", 
         data: dados, 
         contentType: false, 
         processData: false, 
         dataType: "json"}).done(function(response) 
         { 
          if(response.sucesso){ 
           //show success message 
          } 
          else{ 
           //show error message 
          } 
         }); 
        return false; 
    } 
    
    $('#btUploadImagem').on('click', salvaImagem); 
    

    И PHP контроллер:

    public function salvaImagem() 
        { 
         $arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE; 
         //some other checks 
        } 
    

    Что я делаю не так, чтобы в $ _file всегда пусто?

    +0

    dataType: "json" ?? попробуйте взять это как тест. если ни один не указан, jQuery будет пытаться вывести его на основе MIME-типа ответа – Tasos

    +0

    Аналогично http://stackoverflow.com/questions/36609643/image-upload-with-ajax-but-php-does-not-see -file – Musa

    ответ

    0

    Я предлагаю вам использовать плагин для управления загрузкой. Попробуйте использовать Jquery Plupload

    Но если вы не хотите использовать плагин, попробуйте print_r ($ _ FILES, правда), чтобы увидеть, если какие-либо сведения есть

    +0

    'print_r ($ _ FILE, true)' неверно, оно должно быть '$ _FILES'. –

    +0

    Oups, мой плохой, усталый lol –

    0

    Вы пробовали dados.append(name, value, filename);? Проверьте https://developer.mozilla.org/en-US/docs/Web/API/FormData/append для деталей. Я не знаком с самим API FormData. Вы также можете найти ваш ответ здесь: How to use FormData for ajax file upload

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

    • Нет связанных вопросов^_^