O AjaxFileUpload Plugin não recupera dados $ _POST

Este é um problema quase idêntico que eu enfrentei há alguns dias . Eu reparei isso, mas agora não está funcionando mais. Bem, alguns funcionam.

Estou usando o AjaxFileUpload Plugin para fazer upload de arquivos no meu plugin WP. Este plugin chama uploader.php para processar o formulário de upload.

Posso obter o nome do arquivo (e outros dados) usando $_FILES['uploadFile'] , mas não consigo recuperar dados $_POST['current_path'] .

Contudo, tenho uma teoria. Quando eu carrego a interface para carregar dados, o campo de input oculto ‘current_path’ está vazio (como deve ser). Ao navegar pelas minhas pastas, o campo de input escondido é atualizado usando jQuery.

Quando eu toque o botão de upload, o plugin de carregamento de arquivos do Ajax leva os dados no formulário de upload e passa os dados para uploader.php por $_POST e $_FILES .

Mas por que eu posso obter dados de $_FILES e não de $_POST ?

Aqui está o meu código:

Javascript

  //File upload functions // Remove feedback message on upload click jQuery('.uploadImage').live('click',function() { ajaxFileUpload(); }); (...) //Lets upload the file by using Ajax uploader plugin function ajaxFileUpload() { alert(jQuery('input[type=hidden][name=current_path]').val()) //Shows me the correct current path jQuery.ajaxFileUpload ( { url:'../wp-content/plugins/wp-filebrowser/uploader.php', secureuri:false, fileElementId:'uploadFile', dataType: 'json', success: function (data) { if(data.error != '') { alert(data.error); } else { alert(data.respons); } }, error: function (e) { jQuery('#uploadOutput').addClass('error').html('Error: ' + e).show(); }, complete: function() { // Update file list } } ) return false; } 

HTML

 
<input type="hidden" id="current_path" name="current_path" value="relative_url; ?>" /> <input type="button" class="button uploadImage" value="" />

PHP

 $this->current_path = $_POST['current_path']; $this->data['error'] = $_FILES['uploadFile']['name']; //Just for testing $this->data['respons'] = "Filename: ".$_POST['current_path']; echo json_encode($this->data); 

Mas por que eu posso obter dados de $ _FILES e não de $ _POST?

Como você não está enviando o formulário, apenas o elemento de input do arquivo.

Parece ser o comportamento do plugin por design :

Nesta versão pirateada, ele envia o tipo de arquivo especificado do elemento de input apenas em vez de um formulário inteiro

O plugin de formulário jQuery pode fazer ambos, talvez isso ajude.