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,7 +467,7 @@ i3GEOadmin.editormapfile.dicionario = { | ||
467 | es : "" | 467 | es : "" |
468 | } ], | 468 | } ], |
469 | 'dataTitulo' : [ { | 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 | en : "", | 471 | en : "", |
472 | es : "" | 472 | es : "" |
473 | } ], | 473 | } ], |
classesphp/classe_mapa.php
@@ -2031,6 +2031,8 @@ class Mapa | @@ -2031,6 +2031,8 @@ class Mapa | ||
2031 | { | 2031 | { |
2032 | if (file_exists($arq)) | 2032 | if (file_exists($arq)) |
2033 | { | 2033 | { |
2034 | + $arq = str_replace(".shp","",$arq); | ||
2035 | + $arq = str_replace(".","",$arq).".shp"; | ||
2034 | $s = ms_newShapefileObj($arq,-1); | 2036 | $s = ms_newShapefileObj($arq,-1); |
2035 | /* | 2037 | /* |
2036 | if($this->v == 6) | 2038 | if($this->v == 6) |
classesphp/mapa_controle.php
@@ -589,14 +589,40 @@ switch (strtoupper($funcao)) | @@ -589,14 +589,40 @@ switch (strtoupper($funcao)) | ||
589 | include_once("classe_mapa.php"); | 589 | include_once("classe_mapa.php"); |
590 | copiaSeguranca($map_file); | 590 | copiaSeguranca($map_file); |
591 | $m = new Mapa($map_file); | 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 | break; | 627 | break; |
602 | /* | 628 | /* |
ferramentas/navegarquivos/exec.php
@@ -6,6 +6,8 @@ $funcoesEdicao = array( | @@ -6,6 +6,8 @@ $funcoesEdicao = array( | ||
6 | ); | 6 | ); |
7 | if(in_array(strtoupper($funcao),$funcoesEdicao)){ | 7 | if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
8 | if(verificaOperacaoSessao("admin/html/editormapfile") == false){ | 8 | if(verificaOperacaoSessao("admin/html/editormapfile") == false){ |
9 | + retornaJSON("Vc nao pode realizar essa operacao.");exit; | ||
10 | + | ||
9 | //se nao estiver logado permite acesso a pasta i3geo/aplicmap/dados | 11 | //se nao estiver logado permite acesso a pasta i3geo/aplicmap/dados |
10 | //localiza a pasta aplicmap/dados | 12 | //localiza a pasta aplicmap/dados |
11 | $d = dirname(__FILE__); //precisa descer ainda | 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,7 +38,15 @@ A lista de drives é definida no ms_configura e permite que o usuár | ||
36 | */ | 38 | */ |
37 | case "LISTADRIVES": | 39 | case "LISTADRIVES": |
38 | include(dirname(__FILE__)."/../ms_configura.php"); | 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 | break; | 50 | break; |
41 | /* | 51 | /* |
42 | Valor: LISTAARQUIVOS* | 52 | Valor: LISTAARQUIVOS* |
@@ -44,7 +54,36 @@ Valor: LISTAARQUIVOS* | @@ -44,7 +54,36 @@ Valor: LISTAARQUIVOS* | ||
44 | Lista os arquivos de um diretório. | 54 | Lista os arquivos de um diretório. |
45 | */ | 55 | */ |
46 | case "LISTAARQUIVOS": | 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 | break; | 87 | break; |
49 | } | 88 | } |
50 | cpjson($retorno); | 89 | cpjson($retorno); |