Commit 638a2edb74ba8c8ff311f51d7ccc4c959c11504f
1 parent
acd3b5c8
Exists in
master
Inclusão de validação do nome de arquivos e pastas no navegador de diretórios
Showing
4 changed files
with
77 additions
and
10 deletions
Show diff stats
admin/dicionario/editormapfile.js
| ... | ... | @@ -467,7 +467,7 @@ i3GEOadmin.editormapfile.dicionario = { |
| 467 | 467 | es : "" |
| 468 | 468 | } ], |
| 469 | 469 | 'dataTitulo' : [ { |
| 470 | - pt : "Data - SQL ou caminho do arquivo com os dados", | |
| 470 | + pt : "Data - SQL ou caminho do arquivo com os dados. No caso de shapefile, verifique se o caminho está correto ao usar o navegador de arquivos", | |
| 471 | 471 | en : "", |
| 472 | 472 | es : "" |
| 473 | 473 | } ], | ... | ... |
classesphp/classe_mapa.php
classesphp/mapa_controle.php
| ... | ... | @@ -589,14 +589,40 @@ switch (strtoupper($funcao)) |
| 589 | 589 | include_once("classe_mapa.php"); |
| 590 | 590 | copiaSeguranca($map_file); |
| 591 | 591 | $m = new Mapa($map_file); |
| 592 | - $retorno = $m->adicionaTemaSHP($_pg["arq"]); | |
| 593 | - if ($retorno != "erro") | |
| 594 | - { | |
| 595 | - $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); | |
| 592 | + //valida o caminho do arquivo shapefile | |
| 593 | + $nome = explode("/",$_pg["arq"]); | |
| 594 | + $nome = $nome[0]; | |
| 595 | + if(empty($nome)){ | |
| 596 | + $retorno = "erro"; | |
| 596 | 597 | } |
| 597 | - else | |
| 598 | - { | |
| 599 | - $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 598 | + else{ | |
| 599 | + //remove o nome do caminho | |
| 600 | + $novo = explode("/",$_pg["arq"]); | |
| 601 | + $novo[0] = ""; | |
| 602 | + $_pg["arq"] = implode("/",$novo); | |
| 603 | + // | |
| 604 | + include(dirname(__FILE__)."/../ms_configura.php"); | |
| 605 | + $d = $navegadoresLocais[0]["drives"]; | |
| 606 | + $p = ""; | |
| 607 | + foreach($d as $n){ | |
| 608 | + if($n["nome"] == $nome){ | |
| 609 | + $p = $n["caminho"]; | |
| 610 | + } | |
| 611 | + } | |
| 612 | + if($p != "" && file_exists($p)){ | |
| 613 | + | |
| 614 | + $retorno = $m->adicionaTemaSHP($p."/".$_pg["arq"]); | |
| 615 | + if ($retorno != "erro") { | |
| 616 | + $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); | |
| 617 | + } | |
| 618 | + else{ | |
| 619 | + $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 620 | + } | |
| 621 | + | |
| 622 | + } | |
| 623 | + else{ | |
| 624 | + $retorno = "erro"; | |
| 625 | + } | |
| 600 | 626 | } |
| 601 | 627 | break; |
| 602 | 628 | /* | ... | ... |
ferramentas/navegarquivos/exec.php
| ... | ... | @@ -6,6 +6,8 @@ $funcoesEdicao = array( |
| 6 | 6 | ); |
| 7 | 7 | if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
| 8 | 8 | if(verificaOperacaoSessao("admin/html/editormapfile") == false){ |
| 9 | + retornaJSON("Vc nao pode realizar essa operacao.");exit; | |
| 10 | + | |
| 9 | 11 | //se nao estiver logado permite acesso a pasta i3geo/aplicmap/dados |
| 10 | 12 | //localiza a pasta aplicmap/dados |
| 11 | 13 | $d = dirname(__FILE__); //precisa descer ainda |
| ... | ... | @@ -36,7 +38,15 @@ A lista de drives é definida no ms_configura e permite que o usuár |
| 36 | 38 | */ |
| 37 | 39 | case "LISTADRIVES": |
| 38 | 40 | include(dirname(__FILE__)."/../ms_configura.php"); |
| 39 | - $retorno = $navegadoresLocais[0]; | |
| 41 | + //pega apenas os nomes para nao expor o caminho completo | |
| 42 | + $d = $navegadoresLocais[0]["drives"]; | |
| 43 | + $resultado = array(); | |
| 44 | + //a primeira string sera o nome definido em drives | |
| 45 | + foreach($d as $n){ | |
| 46 | + $n["caminho"] = $n["nome"]; | |
| 47 | + $resultado[] = $n; | |
| 48 | + } | |
| 49 | + $retorno = array("drives"=>$resultado); | |
| 40 | 50 | break; |
| 41 | 51 | /* |
| 42 | 52 | Valor: LISTAARQUIVOS* |
| ... | ... | @@ -44,7 +54,36 @@ Valor: LISTAARQUIVOS* |
| 44 | 54 | Lista os arquivos de um diretório. |
| 45 | 55 | */ |
| 46 | 56 | case "LISTAARQUIVOS": |
| 47 | - $retorno = listaArquivos($diretorio,true); | |
| 57 | + //pega o caminho | |
| 58 | + //nome | |
| 59 | + $nome = explode("/",$_GET["diretorio"]); | |
| 60 | + $nome = $nome[0]; | |
| 61 | + if(empty($nome)){ | |
| 62 | + $retorno = "erro"; | |
| 63 | + } | |
| 64 | + else{ | |
| 65 | + //remove o nome do caminho | |
| 66 | + $novo = explode("/",$_GET["diretorio"]); | |
| 67 | + $novo[0] = ""; | |
| 68 | + $_GET["diretorio"] = implode("/",$novo); | |
| 69 | + // | |
| 70 | + include(dirname(__FILE__)."/../../ms_configura.php"); | |
| 71 | + $d = $navegadoresLocais[0]["drives"]; | |
| 72 | + $p = ""; | |
| 73 | + foreach($d as $n){ | |
| 74 | + if($n["nome"] == $nome){ | |
| 75 | + $p = $n["caminho"]; | |
| 76 | + } | |
| 77 | + } | |
| 78 | + if($p != "" && file_exists($p)){ | |
| 79 | + $path = $p."/".$_GET["diretorio"]; | |
| 80 | + $path = str_replace(".","",$path); | |
| 81 | + $retorno = listaArquivos($path,true); | |
| 82 | + } | |
| 83 | + else{ | |
| 84 | + $retorno = "erro"; | |
| 85 | + } | |
| 86 | + } | |
| 48 | 87 | break; |
| 49 | 88 | } |
| 50 | 89 | cpjson($retorno); | ... | ... |