Плагин AjaxFileUpload не получает данные $ _POST или $ _FILES - PullRequest
1 голос
/ 09 сентября 2010

Хорошо, я надеюсь, что это будет мой последний вопрос в серии вопросов о динамической загрузке файлов.

Я использую AjaxFileUpload Plugin и пытаюсь работать с данными FORM в моем uploader.php. Проблема в том, что $_POST и $_FILES имеют значение NULL.

Это мой HTML-код:

  <form id="uploadForm" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    <input type="hidden" name="current_path" value="<?php echo $fb->relative_url; ?>" />
    <input id="uploadFile" name="uploadFile" type="file" />
    <input type="button" class="button uploadImage" value="<?php _e('Upload File') ?>" /> <br />
  </form> 

А это мой JS-скрипт:

  //File upload
    jQuery('.uploadImage').live('click',function() {
    ajaxFileUpload();
  });

  (...)

  function ajaxFileUpload() {
    jQuery.ajaxFileUpload ( {
        url:'../wp-content/plugins/wp-filebrowser/uploader.php', 
        secureuri:false,
        fileElementId:'uploadFile',
        dataType: 'json',
        success: function (data, status) {
            alert('Error: ' + data.error + ' - Respons: ' + data.respons)
        },
        error: function (data, status, e) {
            alert('Error: ' + e);
        }
      }
    )
    return false;   
  }

Чтобы проверить, что данные передаются, у меня есть следующий код PHP:

  $data['error']    = $_POST['current_path'];  // Gives me NULL
  $data['respons']  = $_FILES['uploadFile']['name']; // Gives me NULL

  // Return result in json 
  echo json_encode($data);  

UPDATE

После очень хорошей помощи от Пекки (с его хорошими глазами) у меня все заработало! Код обновлен с правильным кодом.

1 Ответ

3 голосов
/ 09 сентября 2010

Вы назначаете

fileElementId:'uploadFile',

но у вашего файла нет этого идентификатора.

И ваш PHP-скрипт должен выглядеть так:

$_FILES["uploadFile"]["name"]
...