
btpedro
Membros-
Total de itens
4 -
Registro em
-
Última visita
Sobre btpedro

btpedro's Achievements
0
Reputação
-
Boa tarde galera. Andei procurando nos tópicos e não encontrei nenhum post relacionado a capturar o endereço de um arquivo. Estou tentando capturar o endereço de um arquivo para que uma segunda página possa efetuar a leitura do mesmo. Tenho meu formulário para envio do arquivo e estou utilizando $_POST e $_GET. Porém, meu arquivo não é lido pela segunda página. Seguem os códigos: Código do formulário <?php //ini_set("memory_limit","256M"); session_start(); require "../../../lib.php"; conecta(); //require "../libmenu.php"; //require "../libmenustyle.php"; //require "../libmenujava.php"; //require "../tabela.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Busca por palavras chaves de clientes.</title> <link href="../css/sistema.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="../js/separateFiles/dhtmlSuite-common.js"></script> <script type="text/javascript" src="clientes.js"></script> </head> <body> <form id="leitura" name="leitura" method="post" action="testeLeitura.php" enctype='multipart/form-data'> <input type="hidden" name="palavra_idCli" id="palavra_idCli"/> <fieldset/> <legend>Executar Teste de Leitura</legend> <table width="100%" border="1" cellspacing="0" cellpadding="2"> <tr> <td>Cliente:</td> <td> <select name="cliente" id="cliente"> <option value="">Selecioneum um cliente</option> <?php $sqlCli = mysql_db_query($banco,"select nome, cli from licitacoes_clientes order by nome"); while ($resCli = mysql_fetch_array($sqlCli)){ echo "<option value=\"$resCli[cli]\">$resCli[nome]</option>"; } ?> </select> </td> </tr> <tr> <td width="34%">Arquivo para upload:</td> <td width="66%"><input type="text" name="edital" id="edital" /></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="button" name="button4" id="button4" value="Verificar Palavra" onclick="formObjPalavra.submit()" /> <input type="button" name="button5" id="button5" value="Voltar" onclick="window.close();"/> </div></td> </tr> </table> <?php $cliente = $_POST["cliente"]; $arquivo = $_POST["edital"]; ?> </form> <div id="formResponsePalavra" style="visibility: visible;"></div> <script type="text/javascript"> function buscaPalavraEdital() { dynConObj.loadContent('resultadoPalavra','testeLeitura.php'); } dynConObj = new DHTMLSuite.dynamicContent(); dynConObj.setWaitMessage("Carregando... por favor aguarde !!!!!!!"); var formObjPalavra = new DHTMLSuite.form({ formRef:'leitura',action:'testeLeitura.php',responseEl:'formResponsePalavra'}); </script> </body> </html> E este é o código que deveria capturar o local do arquivo: <?php require_once('/var/www/html/lib.php'); //'/usr/local/www/lib.php'); conecta(); $cliente = $_GET["cliente"]; $arquivo = $_GET["edital"]; function ver_extensao($arquivo) { $extensao = array_reverse(explode(".",$arquivo)); return $extensao[0]; } function buscaEdital($edital,$arquivo,$zip = 'N'){ global $banco; $charset_int = 'cp1252'; $edital = trim($edital); $edital = str_replace(" ","\ ",$edital); $palavras = array(); if($zip=="S"){ $edital = "/usr/local/www/apache22/data/buscaEdital/editais/descompactadas/".$arquivo; } // PDF to text $pdftotext_path = '/usr/local/bin/pdftotext'; //DOC converter $catdoc_path = '/usr/local/bin/catdoc'; $antiword = '/usr/local/bin/antiword'; // XLS para CSV $xls2csv_path = '/usr/local/bin/xls2csv'; //Path to PPT converter $catppt_path = '/usr/local/bin/catppt'; $tipo = ver_extensao($edital); switch (strtolower($tipo)){ case "pdf": $command = $pdftotext_path." ".$edital." -"; $a = exec($command,$result,$retval); if ($retval != '0') { // error handler for .pdf files if ($retval > '3') { echo "Erro UFO $retval -> $edital<br>"; } if ($retval == '1') { echo "Erro ao abrir o arquivo<br>"; } if ($retval == '3') { echo "Erro de permissão,.br"; } $result = array(); $result[] = 'ERROR'; } //return $result; break; case "doc": //$command = $catdoc_path." -s $charset_int -d $charset_int -x $edital"; $command = $catdoc_path." -s $charset_int -d $charset_int -x $edital"; //$command = '/usr/local/bin/antiword '.$edital; $a = exec($command,$result, $retval); break; case "rtf": $command = $catdoc_path." -s $charset_int -d $charset_int -x $edital"; $a = exec($command,$result, $retval); break; case "xls": $command = $xls2csv_path." -s $charset_int -d $charset_int -x $edital"; $a = exec($command,$result, $retval); break; case "ppt": $command = $catppt_path." -s $charset_int -d $charset_int -x $edital"; $a = exec($command,$result, $retval); break; case "zip": require_once "/usr/local/www/apache22/data/classes/dUnzip2.inc.php"; // Get the zipfile class $zip = new dUnzip2($edital); $list = $zip->getList(); $cont = 1; foreach($list as $fileName=>$zippedFile) { $tipoarq = ver_extensao($fileName); $novoNome = "arq".$cont.".".$tipoarq; $zip->unzip($fileName,'/usr/local/www/apache22/data/buscaEdital/editais/descompactadas/'.$novoNome); // To a filename $retorno .= buscaEdital($novoNome,$novoNome,"S"); @unlink('/usr/local/www/apache22/data/buscaEdital/editais/descompactadas/'.$novoNome); $cont++; } break; case "txt": $handle = @fopen($edital, "r"); if ($handle) { while (!feof($handle)) { $result = fgets($handle,9000000000); echo $result; } fclose($handle); } break; default: $retorno = "Tipo de arquivo $tipo desconhecido: $edital !!!!"; $result = array(''); //$result[] = $retorno; } if(is_array($result)) $result = implode(' ',$result); $result = mb_strtolower($result); echo $result.'<br><br>'; $achei = 0; $arrPalavras = array(); $sql = mysql_db_query($banco,"select * from palavras_chaves where idCliente = '$cliente'"); while($res = mysql_fetch_array($sql)) { $palavra = strtolower(trim($res["palavra"])); if(strstr($palavra,"+")) { $partsPalavra = explode("+",$palavra); $count =0; foreach($partsPalavra as $palavraComposta) { echo($palavraComposta."<br>"); if (stripos($result,$palavraComposta) !== false) { echo("achou uma<br>"); $count++;} } if($count==sizeof($partsPalavra)) { $arrPalavras[] = $palavra; $achei = 1; } } if (stripos($result,$palavra) !== false) { $arrPalavras[] = $palavra; $achei = 1; } } $sqlVer = mysql_db_query($banco,"select achouPalavra from licitacoes where id = '$id'"); $resVer = mysql_fetch_array($sqlVer); if($achei==0){ if($resVer["achouPalavra"]!='S'){ echo "update licitacoes set achouPalavra = 'N', processada = 'S', liberada = 'N', acompanhamento = 'N' where id = '$id'<br>"; } }else{ $palavrasBD = implode(', ',$arrPalavras); echo "UPDATE licitacoes SET palavrasEncontradas = CONCAT(COALESCE(palavrasEncontradas, ''),IF(palavrasEncontradas != 'NULL',', $palavrasBD','$palavrasBD')) WHERE id = '$id'"; //mysql_db_query($banco,"UPDATE licitacoes SET palavrasEncontradas = CONCAT(COALESCE(palavrasEncontradas, ''),IF(palavrasEncontradas != 'NULL',', $palavrasBD','$palavrasBD')) WHERE id = '1'"); } // unset ($command, $retval, $a, $contents, $count); return $retorno; } $teste = buscaEdital('/usr/local/www/apache22/data/buscaEdital/editais/temp/pregaoxml.txt','pregaoxml.txt'); echo '##############################<br><br>'.$teste.'$$$$$$$$$$$$$$$$$$$$$$$$$$<br><br>'; echo $cliente; ?> Preciso indicar o endereço do arquivo ("C:\Documents and Settings\USUARIO\LOCAL\ARQUIVO").... Alguma idéia? Grato desde já
-
Denis, conforme havia dito... Fiz os testes hoje e... o desempenho melhorou muuuuuuuito cara... Gerei um relatório anual para testes (o resultado foram aproximadamente 16 mil linhas) e ele não levou nem 5 minutos... Muito obrigado. É bom saber que temos profissionais do seu calibre dispostos a ajudar. :lol:
-
Denis, obrigado pela ajuda. Vou testar agora mesmo as alterações e posto o resultado.
-
Boa tarde pessoal, meu primeiro post e estou quebrando a cabeça a um boooom tempo para tentar otimizar as seguintes queries. As 3 queries estão na mesma página. O tempo de execução é extremamente demorado (para gerar um relatório de 15 dias, levei aproximadamente meia hora para montar as tabelas (HTML)) O que preciso é que esse relatório seja gerado para excel. Testei a classe Excelwrite.inc (PHP) e consegui criar a planilha. Porém, me retorna somente a primeira query. Segue as Queries if($_GET["cliente"]){ $sqlCli = " and l.cliente = '".$_GET["cliente"]."'"; } if($_GET["filtro"]){ $sqlFiltro = " and l.filtro = '".$_GET["filtro"]."'"; } if($_GET["data1"]){ $data1Arr = explode("/",$_GET["data1"]); $data1SQL = $data1Arr[2].'-'.$data1Arr[1].'-'.$data1Arr[0]; $data2Arr = explode("/",$_GET["data2"]); $data2SQL = $data2Arr[2].'-'.$data2Arr[1].'-'.$data2Arr[0]; $sqlData = " and date_format(l.datacad,'%Y-%m-%d') >= '".$data1SQL."' and date_format(l.datacad,'%Y-%m-%d') <= '".$data2SQL."'"; } $txtSQL = "select l.*, c.nome from licitacoes as l INNER JOIN licitacoes_clientes as c on l.cliente = c.cli where 1=1 $sqlCli $sqlFiltro $sqlData order by achouPalavra, cidade, uf, enviada"; -------------------------------------- SEGUNDA QUERY $edital = ''; $sqlEd = mysql_db_query($banco,"select * from licitacoes_links where idLicitacao = '$res[id]' group by linkCompleto"); ----------------------------------------- TERCEIRA QUERY $sqlEn = mysql_db_query($banco,"select p.* from licitacoes_proc_intrasys as p INNER JOIN licitacoes_email as e on p.id = e.idProcIntrasys where e.idLicitacao = '$res[id]' group by data");