Quero contribuir com uma resposta aqui, pois também enfrentei o mesmo problema - queremos que o elemento $ _FILES esteja disponível como parte da mesma postagem em outro formulário. Minha resposta é baseada em @mrtnmgs, no entanto, observa os comentários adicionados a essa pergunta.
Em primeiro lugar: o Dropzone publica seus dados via ajax
Só porque você usa a formData.append
opção ainda significa que você deve enfrentar as ações de UX - isto é, tudo acontece nos bastidores e não é um post de formulário típico. Os dados são lançados no seu url
parâmetro.
Segundo: se você deseja imitar uma postagem de formulário, será necessário armazenar os dados postados
Isso requer que o código do servidor armazene sua $_POST
ou $_FILES
em uma sessão disponível para o usuário em outro carregamento de página, pois o usuário não irá para a página em que os dados publicados são recebidos.
Terceiro: você precisa redirecionar o usuário para a página em que esses dados são acionados
Agora que você publicou seus dados, os armazenou em uma sessão, é necessário exibi-los / ação para o usuário em uma página adicional. Você precisa enviar o usuário para essa página também.
Então, para o meu exemplo:
[Código do Dropzone: usa o Jquery]
$('#dropArea').dropzone({
url: base_url+'admin/saveProject',
maxFiles: 1,
uploadMultiple: false,
autoProcessQueue:false,
addRemoveLinks: true,
init: function(){
dzClosure = this;
$('#projectActionBtn').on('click',function(e) {
dzClosure.processQueue(); /* My button isn't a submit */
});
// My project only has 1 file hence not sendingmultiple
dzClosure.on('sending', function(data, xhr, formData) {
$('#add_user input[type="text"],#add_user textarea').each(function(){
formData.append($(this).attr('name'),$(this).val());
})
});
dzClosure.on('complete',function(){
window.location.href = base_url+'admin/saveProject';
})
},
});