Carlos Rocha Posted May 23, 2018 at 08:38 PM Report #610667 Posted May 23, 2018 at 08:38 PM Tenho lido muita coisa à respeito do assunto e estou ficando mais confuso. Tenho o form abaixo: <div class="plano"> <h1 class="titulos">Cadastro de Plano</h1> <form method="post" class="planoCadastrar"> <input type="text" name="nomePlano" id="nomePlano" class="typeTextMedio" placeholder="Nome" required /><br /><br /> <textarea placeholder="Descrição" class="textarea" name="descricao" id="descricao" cols="93" rows="15" required></textarea><br /> <br /> <div id="multiple_upload"> <input type="hidden" id="arquivos" name="arquivos" onChange="alert(this.value)" /> <input type="file" multiple id="fotos" name="fotos[]" /> <div id="message">Selecionar fotos</div> <div id="lista"></div> </div> <img class="spinner" src="../_img/_bannerImgs/spinner.gif" /> <input type="submit" class="btnAcesso" value="Enviar" /> <label class="resposta"></label> </form><br /><br /> <script> $('.elevate-image').ezPlus({ zoomType: 'inner', cursor: 'crosshair' }); </script> </div> Nele eu tenho um campo FILE para envio de arquivos. Estou usando $.post() do jQuery para enviar esse formulário para uma página php sem refresh. Tudo vai bem e consigo pegar no php mas o campo FILE não vai. Estou tentando meio que uma gabiarra mas mesmo assim tive que parar para pedir ajuda. O jQuery: // JavaScript Document $(document).ready(function(e) { $("div.conteudo div.plano form.planoCadastrar").on("submit", function() { var nomePlano = $("form.planoCadastrar input[type=text]#nomePlano").val(); var descricao = $("form.planoCadastrar textarea#descricao").val(); var arquivos = $("form.planoCadastrar input[type=hidden]#arquivos").val(); var fotosPost = $("form.planoCadastrar input[type=file]")[0].files; fotos = new Array(); for (var i=0; i < fotosPost.length; i++) { fotos[i]["name"] = fotosPost[i].name fotos[i]["type"] = fotosPost[i].type fotos[i]["size"] = fotosPost[i].size fotos[i]["tmp_name"] = fotosPost[i].tmp_name } return false; if ( nomePlano == "" || descricao == "") { alert("Algum campo está vazio!"); } $("div.conteudo div.plano form.planoCadastrar input[type=submit].btnAcesso").css('display', 'none'); $("div.conteudo div.plano form.planoCadastrar img").css('display', 'block'); $.post ("../_requeridos/cadastraPlano.php", { nomePlano : nomePlano, descricao : descricao, arquivos : arquivos, fotos : fotos }, function(retorno){ $("div.conteudo div.plano form.planoCadastrar input[type=submit].btnAcesso").css('display', 'block'); $("div.conteudo div.plano form.planoCadastrar img").css('display', 'none'); if (retorno == 1) { resposta = "Plano cadastrado com sucesso!"; } else { resposta = "Erro no cadastro do Plano"; } $(".resposta").css("display", "block"); $(".resposta").html(resposta); } ); return false; }); }); Tentei fazer a tal gabiarra com o código abaixo: for (var i=0; i < fotosPost.length; i++) { fotos[i]["name"] = fotosPost[i].name fotos[i]["type"] = fotosPost[i].type fotos[i]["size"] = fotosPost[i].size fotos[i]["tmp_name"] = fotosPost[i].tmp_name } Mas quando chego no fotos[i]["tmp_name"] = fotosPost[i].tmp_name Não consigo pegar o valor. Será que existe um recurso para isso? Ou terei mesmo que submeter o formulário. A ideia é pegar o array do FILE e criar um array javascript, enviar ara o php e converter novamente em array php para ver se consigo fazer o upload do arquivo.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now