diff --git a/admin/php/estat_mapa_upload.php b/admin/php/estat_mapa_upload.php index a6a1804..3f96d25 100755 --- a/admin/php/estat_mapa_upload.php +++ b/admin/php/estat_mapa_upload.php @@ -8,6 +8,7 @@ error_reporting(0); ?>
+Ocorreu um erro no envio do arquivo. Verifique as permissoes de escrita";exit;} if($status == 1){ diff --git a/admin/php/metaestat_mapa_uploadimagem.php b/admin/php/metaestat_mapa_uploadimagem.php index b2d731f..dae8ca7 100755 --- a/admin/php/metaestat_mapa_uploadimagem.php +++ b/admin/php/metaestat_mapa_uploadimagem.php @@ -12,6 +12,7 @@ error_reporting(0); ?>
+Ocorreu um erro no envio do arquivo. Verifique as permissoes de escrita";exit;} if($status == 1){ echo "
Arquivo enviado.
"; - chmod($arq,0777); } else{ echo "Erro ao enviar o arquivo.
"; diff --git a/admin/php/metaestat_uploadcsv_submit.php b/admin/php/metaestat_uploadcsv_submit.php index 5373774..ff30760 100755 --- a/admin/php/metaestat_uploadcsv_submit.php +++ b/admin/php/metaestat_uploadcsv_submit.php @@ -15,6 +15,7 @@ if (ob_get_level() == 0) ob_start(); +Separador de colunas identificado: ".$separador."
"; + echo "Total de colunas: ".count($colunas)."
"; fclose ($handle); //le o csv em um array $handle = fopen ($arqcsv, "r"); @@ -75,18 +77,26 @@ if (ob_get_level() == 0) ob_start(); while (!feof($handle)) { $buffer = fgets($handle); if($buffer != $cabecalho){ - $buffer = str_replace('"','',$buffer); + //$buffer = str_replace('"','',$buffer); $buffer = str_replace("'",'',$buffer); $buffer = str_replace("\n",'',$buffer); $buffer = str_replace("\r",'',$buffer); - $temp = explode($separador,$buffer); - if(count($temp) == $ncolunas) - $linhas[] = $temp; + if($buffer != ""){ + $temp = explode($separador,$buffer); + if(count($temp) == $ncolunas){ + $linhas[] = $temp; + } + else{ + echo "A linha abaixo apresentou um erro - número de colunas não bate com o cabeçalho
"; + var_dump($temp); + exit; + } + } } } fclose ($handle); //decobre o tipo de coluna - $testar = 10; + $testar = 50; if(count($linhas) < $testar){ $testar = count($linhas); } @@ -112,7 +122,7 @@ if (ob_get_level() == 0) ob_start(); try { $dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]); } catch (PDOException $e) { - echo 'Connection failed: ' . $e->getMessage(); + echo 'Connection failed: ' . " "; } //encoding do banco de dados $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '".$conexao["bancodedados"]."'"; @@ -126,6 +136,8 @@ if (ob_get_level() == 0) ob_start(); if($encodingdb == "LATIN1"){ $encodingdb = "ISO-8859-1"; } + echo "Codificação do banco: ".$encodingdb."
"; + //gera o script para criar a tabela e verifica se ja existe $sql = "SELECT table_name FROM information_schema.tables where table_schema = '".$_POST["i3GEOuploadcsvesquema"]."' AND table_name = '".$_POST["tabelaDestinocsv"]."'"; $res = $dbh->query($sql,PDO::FETCH_ASSOC); @@ -149,6 +161,11 @@ if (ob_get_level() == 0) ob_start(); $sql .= implode(",",$temp).") WITH(OIDS=FALSE)"; $sqltabela[] = $sql; $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." OWNER TO ".$conexao["usuario"]; + if(!empty($_POST["comentarioCsv"])){ + $enc = mb_detect_encoding($texto); + $_POST["comentarioCsv"] = mb_convert_encoding($_POST["comentarioCsv"],$encodingdb,$enc); + $sqltabela[] = "COMMENT ON TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." IS '".addcslashes($_POST["comentarioCsv"])."'"; + } echo ""; var_dump($sqltabela); echo ""; @@ -178,29 +195,39 @@ if (ob_get_level() == 0) ob_start(); $nlinhas = count($linhas); $valorX = 0; $valorY = 0; + $escapar = "',<,>,%,#,@,(,)"; for ($i=0; $i<$nlinhas;$i++){ $s = $linhas[$i]; + $s = str_replace('"','',$s); + $enc = mb_detect_encoding($s); + if($enc != ""){ + $s = mb_convert_encoding($s,$encodingdb,$enc); + } $vs = array(); for ($j=0; $j<$ncolunas;$j++){ - if($tipoColuna[$colunas[$j]] == "varchar"){ + $escape = ""; + if($tipoColuna[$coluna] == "varchar"){ $texto = $s[$j]; - $texto = str_replace("'","",$texto); $enc = mb_detect_encoding($texto); - if(enc != ""){ - $texto = "'".mb_convert_encoding($texto,$encodingdb,$enc)."'"; + $textosl = addcslashes($texto,$escapar); + if($textosl != $texto){ + $escape = "E"; + } + if($enc != "" && $enc != $encodingdb){ + $textosl = "$escape'".mb_convert_encoding($textosl,$encodingdb,$enc)."'"; } else{ - $texto = "'".$texto."'"; + $textosl = "$escape'".$textosl."'"; } - if($texto == "''"){ - $texto = 'null'; + if($textosl == "''"){ + $textosl = 'null'; } - $vs[] = $texto; + $vs[] = $textosl; } else{ $valor = $s[$j]; - if($valor == ""){ - $valor = "nulo"; + if($valor == "" || (empty($valor) && $valor != 0)){ + $valor = 'nulo'; } $vs[] = $valor; } @@ -234,23 +261,42 @@ if (ob_get_level() == 0) ob_start(); try { $dbh->query($linha); } catch (PDOException $e) { - echo 'Erro: ' . $e->getMessage(); + echo 'Erro: ' . " "; } } + $bdcon = pg_connect('dbname='.$conexao["bancodedados"].' user='.$conexao["usuario"].' password='.$conexao["senha"].' host='.$conexao["host"].' port='.$conexao["porta"]."options='-c client_encoding=LATIN1'"); + foreach($linhasql as $linha){ try { $res = $dbh->query($linha); if($res == false){ - echo "
Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.
"; } - ?> - + ?> + diff --git a/admin/php/metaestat_uploaddados_submit.php b/admin/php/metaestat_uploaddados_submit.php index 787ed66..86cf092 100755 --- a/admin/php/metaestat_uploaddados_submit.php +++ b/admin/php/metaestat_uploaddados_submit.php @@ -7,7 +7,7 @@ if (isset($_FILES['i3GEOuploadArquivo']['name'])) { require_once (dirname(__FILE__)."/../../ms_configura.php"); $Arquivoup = $_FILES['i3GEOuploadArquivo']['tmp_name']; - $nomearquivoserv = $dir_tmp."/upload".basename($Arquivoup); + $nomearquivoserv = $dir_tmp."/upload".basename($Arquivoup).".csv"; //echo $nomearquivoserv; if(file_exists($nomearquivoserv)){ unlink($nomearquivoserv); diff --git a/admin/php/uploadgvp.php b/admin/php/uploadgvp.php index 31beb6c..91e3ebf 100755 --- a/admin/php/uploadgvp.php +++ b/admin/php/uploadgvp.php @@ -9,6 +9,7 @@ if (ob_get_level() == 0) ob_start(); ?> +