wanderleihuttel

jquery FormData não aceita retorno json

Oct 5th, 2018
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 3.91 KB | None | 0 0
  1. <?php
  2.    if ( isset($_POST['edtCodigoEmpresa']) ){
  3.        $codigo = explode(';', $_POST['edtCodigoEmpresa']);
  4.        $file=[];
  5.        if (isset($_FILES['upload'])){
  6.            $file = [
  7.                'name'     => $_FILES['upload']['name'][0],
  8.                 'type'     => $_FILES['upload']['type'][0],
  9.                 'tmp_name' => $_FILES['upload']['tmp_name'][0],
  10.                 'error'    => $_FILES['upload']['error'][0],
  11.                 'size'     => $_FILES['upload']['size'][0]
  12.             ];
  13.         }
  14.  
  15.         $output = [
  16.             'codigoempresa' => $codigo[0],
  17.             'codigoestab'   => $codigo[1],
  18.             'referencia'    => $_POST['edtReferencia'],
  19.             'random'        => rand(10000,99000),
  20.             'file'          => $file
  21.         ];
  22.         sleep(1);
  23.         echo json_encode($output);
  24.         exit;
  25.     }
  26. ?>
  27. <!DOCTYPE html>
  28. <html lang="en">
  29. <head>
  30.     <meta charset="UTF-8">
  31.     <title>Teste jQuery Upload</title>
  32.     <script type="text/javascript" src="http://code.jquery.com/jquery-2.2.4.js"></script>
  33. </head>
  34. <body>
  35.     <form id="formArquivoInventario" name="formArquivoInventario" method="POST" enctype="multipart/form-data">
  36.         <p>
  37.             <label for="edtCodigoEmpresa">Empresa</label>
  38.             <select name="edtCodigoEmpresa">
  39.                 <option value="0;0">000-TODAS</option>
  40.                 <option value="132;1">Empresa 1</option>
  41.                 <option value="456;2">Empresa 2</option>
  42.             </select>
  43.         </p>
  44.  
  45.         <p>
  46.             <label for="edtReferencia">Data (Mês/Ano)</label>
  47.             <input type="text" name="edtReferencia" value="02/2018" class="required datareferencia" maxlength="10"/>
  48.         </p>
  49.  
  50.         <p id="p_upload">
  51.             <label for="edtArquivoAnexo">Arquivo</label>
  52.             <input type="file" name="upload" class="required" />
  53.         </p>
  54.         <p>
  55.             <input type="submit" value="Enviar">
  56.         </p>
  57.  
  58.         <div class="br"></div>
  59.  
  60.         <div id="dialog_relatorio">
  61.             <div id="msg"></div>
  62.         </div>
  63.     </form><!-- fim do form -->
  64.     <script type="text/javascript">
  65.     $(document).ready(function(){
  66.         $('#formArquivoInventario').on('submit', function(e){
  67.             e.preventDefault();
  68.  
  69.             var formData = new FormData();
  70.             var form = $('form').serializeArray();
  71.             $.each(form, function(key, val) {
  72.                 formData.append(val['name'], val['value']);
  73.             });
  74.  
  75.             var files = $('input[type=file]').prop('files');
  76.  
  77.             var total_upload = 0;
  78.             for(i=0;i<files.length;i++){
  79.                formData.append('upload[]', files[i]);
  80.                total_upload += files[i].size;
  81.            }
  82.  
  83.            if (total_upload > 10485760) {
  84.                 alert("Tamanho do upload enviado " + total_upload +" excedido!\nMáximo permitido 10mb.");
  85.                 return false;
  86.             }
  87.  
  88.             $.ajax({
  89.                 //url: 'submit.php',
  90.                 method: 'POST',
  91.                 cache: false,
  92.                 processData: false,
  93.                 contentType: false,
  94.                 dataType: 'json',
  95.                 data: formData,
  96.                 beforeSend: function(){
  97.                     var rand = parseInt( Math.random(1,99999)*1000 );
  98.                     $('#msg').html('Processando... ' + rand);
  99.                 },
  100.                 success: function(data){
  101.                     $('#msg').html('success: ' + data.random);
  102.                 },
  103.                 complete: function(data){
  104.                     console.log(data.referencia);
  105.                     $('#msg').html('complete: ' + data.random);
  106.                 },
  107.                 error: function (  jqXHR, textStatus, errorThrown ){
  108.                     console.log(jqXHR);
  109.                 }
  110.             });
  111.             return false;
  112.         });
  113.     });
  114.     </script>
  115. </body>
  116. </html>
Advertisement
Add Comment
Please, Sign In to add comment