Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

WagnerFilho

Resposta Ajax antes de iniciar importação de arquivo Excel (PHP - MySql)

Recommended Posts

O problema está na demora da resposta Ajax, quando o arquivo Excel possui muitas linhas para serem inseridas no banco de dados MySql. Pois desta forma minha aplicação fica travada, aguardando a resposta desta requisição.

Então gostaria de alguma sugestão para obter a resposta do upload, e em segundo plano a importação fosse realizada, sem interferir no funcionamento da aplicação.

Até então, estou utilizando o POST e no servidor PHP, estou utilizando o seguinte código:

 

$tmp  = $_FILES['file']['tmp_name'];
$name = $_FILES['myfile']['name'];
$path = "upload/"; 
if (move_uploaded_file($tmp, $path . $name))
{
     //aqui eu chamo funcão para importar o arquivo
}

ou em codeigniter

 

$file   = $_FILES['file'];
$config = [
    'upload_path'   => FCPATH.'upload/',
    'allowed_types' => 'xlsx|xls|csv'
];              
$this->load->library('upload', $config);

if ($this->upload->do_upload('file'))
{
     $data = $this->upload->data();
     @chmod($data['full_path'], 0777);

     //aqui eu chamo funcão para importar o arquivo
}

Ajax

 

ajaxCall = $.ajax({
            //async: true,
            url: 'api_upload/upload',
            data: formData,
            cache: false,
            processData: false,
            contentType: false,
            type: 'POST',
            headers: {
                'authorization': 'Basic YWRtaW46MTIzNA==',
                'Authorizationkeyfortoken': String(responseToken),
                'cache-control': 'no-cache',
                'postman-token': '51901e9b-3613-248b-621e-ffd06d92ded4'
            },
            // this part is progress bar
            xhr: function () {
                let xhr = new window.XMLHttpRequest();
                xhr.upload.addEventListener('progress', function (evt) {
                    if (evt.lengthComputable) {
                        let percentComplete = evt.loaded / evt.total;

                        percentComplete = parseInt(percentComplete * 100);
                        $('.my-progress').text(percentComplete + '%');
                        $('.my-progress').css('width', percentComplete + '%');
                    }
                }, false);

                xhr.addEventListener('load', function (evt) {
                    if (evt.lengthComputable) {
                        //completeSave();
                    }
                }, false);

                xhr.addEventListener('abort', function (evt) {
                    if (evt.lengthComputable) {
                        //completeSave();
                    }
                }, false);

                return xhr;
            },
            //beforeSend: function() {
                //completeSave();
            //},
            success: function (data) {
                //completeSave();
                $('.msg').text(data);
                //$('#import-save').removeAttr('disabled');
            }
        });

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.