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); | ... | ... |