Jump to content
GiovannaRamos

Upload de arquivo gerado no código no servidor

Recommended Posts

Olá pessoal,  gostaria de adicionar outra função ao meu botão 'Finalizar10()' ,  por enquanto ele faz a exportação dos dados da minha 'tabela' para um Excel e salva na pasta downloads do meu computador,  alguém sabe se teria alguma forma fazer esse arquivo gerado (Excel) ao invés de  fazer download, fazer o upload no caminho do meu servidor?

 function Finalizar10()
    {
        $(document).ready(function Finalizar()
        {
            $("#btnExport").click(function exportar (e)
            {
                e.preventDefault();
                var blobData = new Blob(['\ufeff'+tabela], { type: 'application/vnd.ms-excel' });
                var url = window.URL.createObjectURL(blobData);
                var a = document.createElement('a');
                a.href = url;       
                a.download = codigo;
                a.click();
            });
        }); 
    }  

 

Share this post


Link to post
Share on other sites

Enviar para o servidor significa que você vai ter que enviar uma requisição para o servidor, seja ajax ou seja via GET ou mesmo a submissão de um formulário... o que me parece fazer sentido a primeiro momento... talvez algo do tipo...

$("#btnExport").click(function exportar (e) {
  e.preventDefault();
  var blobData = new Blob(['\ufeff' + tabela], { type: 'application/vnd.ms-excel' });
  var url = window.URL.createObjectURL(blobData);
  var form = $('<form method="post" action="URL_DO_SCRIPT_NO_SERVIDOR" enctype="multipart/form-data"><input type="hidden" name="tabela" value="' + encodeURIComponent(url) + '" /></form>');
  $(body).appendChild(form);
  form.submit();
});

Você ainda vai precisar fazer o tratamento do lado do servidor para receber o arquivo do formulário que deve chegar pelo item "tabela". Não cheguei a testar o código acima mas deve ser algo próximo disso, imagino que esteja usando jQuery pelo código que passou então criei o formulário utilizando a própria jQuery.

 

É possível enviar um array/objeto de dados que contem a tabela e enviar via AJAX para o servidor, dá um pouco mais de trabalho, mas parece fazer mais sentido pra mim. Algo como...

$("#btnExport").click(function exportar (e) {
  e.preventDefault();
  $.post('URL_DO_SCRIPT_QUE_VAI_RECEBER_OS_DADOS', tabela);
});

Espero ter ajudado de alguma forma... se consguir, posta pra gente sua solução.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By eduardaarosaa
      Estou tentando fazer um validador de idade, mas meu onclick não está retornando como o esperado. O caminho para o aquivo externo está correto, já testei com um alert.
       
      Meu HTML:
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Verificador de Hora</title>
          <link rel="stylesheet" type="text/css" href="style/style.css">
      </head>
      <body>
          <header>
              <h1>Verificador de Idade</h1>
          </header>
          <section>
              <div>
                  <p>Ano de nascimento:
                      <input type="number" name="txtnumber" id="txtano">
                  </p>
                  <p>
                      Sexo:
                      <input type="radio" name="radiosex" id="masc" checked>
                      <label for="masc">Masculino</label>
                      <input type="radio" name="radiosex" id="fem" >
                      <label for="fem">Feminino</label>
                  </p>
                  <p>
                      <input type="button" value="Verificar" onclick="verificar()">
                  </p>
                 
              </div>
              <div id="res">
                  Preencha os campos e veja o resultado.
              </div>
          </section>
          <footer>
              <p>&copy; Eduarda Rosa</p>
          </footer>
          <script src="script/script.js"></script>
      </body>
      </html>
       
      e o JS: 
       
      function verificar(){
          var data = new Date();
          var ano = data.getFullYear();
          var fano = document.getElementById('txtano');
          var res = document.querySelector('div#res');
          if(fano.Value.length == 0 || fano.value > ano){
              window.alert("Error, verifique os dados e tente novamente!");
          }else{
              window.alert("Ok");
          }
      }
       
       
    • By tatysouzac
      Minha view:
      <div>                            
                                          <form method="post" action="http://localhost/integradorcode/index.php/welcome/validar">
                                          EMAIL: <input type="text" name="email"  /> <br><br>
                                          SENHA:  <input type="password" name="senha"/> <br><br><br><br>
                                          <input class="myButton" type="submit" value="Entrar"/> <br><br>
                                          </form>
                                          <a href="Cadastro.php" class="myButton">Cadastrar</a><br><br>
                                          <a href="#" class="myButton">Esqueceu sua senha?</a>
               </div>
       
       
       
      Controller:
       
          public function validar(){
              //var_dump($_POST);
              $this->load->model("Cadastro_model");
              $result = $this->Cadastro_model->validar($_POST["email"],md5($_POST["senha"]));
              var_dump($result);
          }
       
       
      Model:
       
          function validar($email, $senha){
              return $this->db->query("SELECT * FROM `cadastro_clientes` WHERE email_cliente = '{$email}'  AND senha_cliente = '{$senha}' AND status = 1 LIMIT 1")->result_array();
          }
       
       
      Não da nenhuma mensagem de erro mas coloco senha e login certos do meu bd e o return não retorna nada array 0 
    • By Dinho Nunes LC
      <div align="center" id="subtitulo"> Canais Abertos </div> <div class="ui cards"> <div class="card"> <div class="content"> <a href="globo.html" style="display: block; color: black"> <div align="center"> <div> <img class="ui tiny image" id="imagem_card_casa" src="assets/images/Rede_Globo_2014.png"> <div align="center" id = "nome_time_fora"> <b>Globo RJ</b> </div> </div> Onde "globo.html" seria substituído pelo link que esta em uma tabela do banco de dados.
       
      Já fiz a conexão. E tenho a base de dados pronta.
       
      Motivo pelo qual estou buscando ajuda:
       
      Faço manualmente a mudança de cada link (são mais de 300) diariamente para evitar copias de terceiros. Sendo assim poderia usar um CRUD para facilitar a troca dos links direto no banco de dados.
    • By ricardonews
      Olá pessoal eu tenho essa imagem de um login  que vou mostrar aqui, consegui  o css dela , porem não consegui colocar no meu login,  eu vou deixar o login em html,  em css eu estou  dificuldade. Desde já agradeço a todos
       

       então eu o css dela é esse aqui
      *{margin:0; padding:0;} html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } .erros, .ok { width:390px; padding:5px; background:rgba(238, 249, 113, 0.9); margin: 20px auto 0 auto; border: 1px solid rgba(222,239,10,0.9); border-radius: 4px; color: #333; } .ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;} body{ font-family: "Trebuchet MS", tahoma, arial; } #formulario{ width:500px; margin:40px auto; text-align:center; position:relative; } #formulario fieldset{ background:white; border:0 none; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; box-shadow:0 0 15px 1px rgba(0,0,0, 0.4); padding:20px 30px; box-sizing: border-box; width:80%; margin:0 10%; position:absolute; } #formulario input, #formulario textarea{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #formulario .acao{ width:100px; background:rgba(38, 128, 101, 0.9); color:white; text-transform:uppercase; font-weight:bold; padding:12px 0; float:left; margin-right:5%; } #formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;} Aqui abaixo é o html que eu não consegui deixar no css do jeito que está na imagem.
      <!doctype html> <html> <?php require_once"config.php"; ?> <head> <title>APRENDIZ DE JS</title> <link href="style.css" rel="stylesheet" type="text/css"> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <div class="container"> <div id="div_login"> <h1>Login</h1> <div id="message"></div> <div> <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="Username" /> </div> <div> <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="Password"/> </div> <div> <input type="button" value="logar" name="but_submit" id="but_submit" /> </div> </div> </div> </body> </html>  
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.