Commit bfc21a687a79941e2ca500781c63f8a35ed804b3

Authored by Edmar Moretti
1 parent 246213ee

Separacao do codigo utilizado no upload de shp do sistema de administracao e das ferramentas

admin/php/subirshapefile.php
1 1 <?php
2   -//
3   -//caso o usu&aacute;rio seja um administrador, ele pode enviar um nome de diret&oacute;rio onde os arquivos ser&atilde;o armazenados
4   -//na vari&aacute;vel $dirDestino
5   -//
6   -include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
7   -$_GET = array_merge($_GET,$_POST);
  2 +include_once(dirname(__FILE__)."/login.php");
  3 +
  4 +if(in_array(strtoupper($funcao),$funcoesEdicao)){
  5 + if(verificaOperacaoSessao("admin/html/subirshapefile") == false){
  6 + retornaJSON("Vc nao pode realizar essa operacao.");exit;
  7 + }
  8 +}
8 9 if(isset($_GET["tipo"])){
9   - $tipo = $_GET["tipo"];
  10 + $tipo = $_GET["tipo"];
10 11 }
11   -require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
12   -include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");
13   -error_reporting(0);
14   -session_name("i3GeoPHP");
15   -if(isset($_GET["g_sid"]) && $_GET["g_sid"] != ""){
16   - session_id($_GET["g_sid"]);
17   - session_start();
18   - $map_file = $_SESSION["map_file"];
  12 +//locaplic e usado para definir a pasta de destino
  13 +if(empty($locaplic)){
  14 + exit;
19 15 }
20   -if (ob_get_level() == 0) ob_start();
  16 +error_reporting(0);
21 17 ?>
22 18 <html>
23 19 <head>
... ... @@ -32,216 +28,158 @@ if (ob_get_level() == 0) ob_start();
32 28 <?php
33 29 if (isset($_FILES['i3GEOuploadshp']['name']))
34 30 {
35   - $dirDestino = $_POST["dirDestino"];
36   - require_once (dirname(__FILE__)."/../../ms_configura.php");
  31 + $dirDestino = $_POST["dirDestino"];
  32 + if(empty($dirDestino)){
  33 + echo "Pasta nao encontrada"; exit;
  34 + }
  35 + $checaDestino = dirname($locaplic);
  36 + $dirDestino = str_replace($checaDestino,"",$dirDestino);
  37 + $dirDestino = $checaDestino."/".$dirDestino;
37 38  
38   - if(isset($logExec) && $logExec["upload"] == true){
39   - i3GeoLog("prog: upload filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);
40   - }
  39 + if(isset($logExec) && $logExec["upload"] == true){
  40 + i3GeoLog("prog: upload filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);
  41 + }
41 42  
42   - echo "<p class='paragrafo' >Carregando o arquivo...</p>";
43   - ob_flush();
44   - flush();
45   - sleep(1);
46   - if(isset($map_file) && $map_file != ""){
47   - $mapa = ms_newMapObj($map_file);
48   - $dirmap = dirname($map_file);
49   - }
50   - if(isset($dirDestino) && $dirDestino != ""){
51   - $dirmap = $dirDestino;
52   - include_once(dirname(__FILE__)."/../../admin/php/login.php");
53   - if(verificaOperacaoSessao("admin/php/editortexto") == false){
54   - echo "Vc nao pode salvar os dados no servidor em uma pasta espec&iacute;fica";exit;
55   - }
56   - if(!file_exists($dirmap))
57   - {echo "<p class='paragrafo' >Pasta n&atilde;o existe no servidor";paraAguarde();exit;}
58   - }
59   - //verifica nomes
60   - verificaNome($_FILES['i3GEOuploadshp']['name']);
61   - verificaNome($_FILES['i3GEOuploadshx']['name']);
62   - verificaNome($_FILES['i3GEOuploaddbf']['name']);
  43 + echo "<p class='paragrafo' >Carregando o arquivo...</p>";
  44 + ob_flush();
  45 + flush();
  46 + sleep(1);
  47 + $dirmap = $dirDestino;
  48 + if(!file_exists($dirmap)){
  49 + echo "<p class='paragrafo' >Pasta n&atilde;o existe no servidor";
  50 + paraAguarde();
  51 + exit;
  52 + }
  53 + //verifica nomes
  54 + verificaNome($_FILES['i3GEOuploadshp']['name']);
  55 + verificaNome($_FILES['i3GEOuploadshx']['name']);
  56 + verificaNome($_FILES['i3GEOuploaddbf']['name']);
63 57  
64   - if($_FILES['i3GEOuploadprj']['name'] != ""){
65   - verificaNome($_FILES['i3GEOuploadprj']['name']);
66   - }
  58 + if($_FILES['i3GEOuploadprj']['name'] != ""){
  59 + verificaNome($_FILES['i3GEOuploadprj']['name']);
  60 + }
67 61  
68   - //remove acentos
69   - $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
  62 + //remove acentos
  63 + $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
70 64  
71   - $nomePrefixo = str_replace(".","",$nomePrefixo);
72   - $nomePrefixo = strip_tags($nomePrefixo);
73   - $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
74   - $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
  65 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  66 + $nomePrefixo = strip_tags($nomePrefixo);
  67 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
75 68  
76   - //sobe arquivo
77   - $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name'];
78   - if(file_exists($dirmap."/".$nomePrefixo.".shp"))
79   - {echo "<p class='paragrafo' >J&aacute; existe um SHP com o nome ";paraAguarde();exit;}
80   - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp");
81   - if($status != 1)
82   - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limita&ccedil;&atilde;o quanto ao tamanho do arquivo ou permiss&atilde;o de escrita na pasta indicada.";paraAguarde();exit;}
  69 + //sobe arquivo
  70 + $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name'];
  71 + if(file_exists($dirmap."/".$nomePrefixo.".shp")){
  72 + echo "<p class='paragrafo' >J&aacute; existe um SHP com o nome ";
  73 + paraAguarde();
  74 + exit;
  75 + }
  76 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp");
  77 + if($status != 1)
  78 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limita&ccedil;&atilde;o quanto ao tamanho do arquivo ou permiss&atilde;o de escrita na pasta indicada.";paraAguarde();exit;}
83 79  
84   - $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name'];
85   - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx");
86   - if($status != 1)
87   - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHX";paraAguarde();exit;}
  80 + $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name'];
  81 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx");
  82 + if($status != 1)
  83 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHX";paraAguarde();exit;}
88 84  
89   - $Arquivo = $_FILES['i3GEOuploaddbf']['tmp_name'];
90   - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".dbf");
91   - if($status != 1)
92   - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo DBF";paraAguarde();exit;}
  85 + $Arquivo = $_FILES['i3GEOuploaddbf']['tmp_name'];
  86 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".dbf");
  87 + if($status != 1)
  88 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo DBF";paraAguarde();exit;}
93 89  
94   - if($_FILES['i3GEOuploadprj']['name'] != ""){
95   - $Arquivo = $_FILES['i3GEOuploadprj']['tmp_name'];
96   - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".prj");
97   - if($status != 1){
98   - echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo PRJ";paraAguarde();exit;
99   - }
100   - }
  90 + if($_FILES['i3GEOuploadprj']['name'] != ""){
  91 + $Arquivo = $_FILES['i3GEOuploadprj']['tmp_name'];
  92 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".prj");
  93 + if($status != 1){
  94 + echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo PRJ";paraAguarde();exit;
  95 + }
  96 + }
101 97  
102   - if(!file_exists($dirmap."/".$nomePrefixo.".shp"))
103   - {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;}
  98 + if(!file_exists($dirmap."/".$nomePrefixo.".shp"))
  99 + {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;}
104 100  
105 101  
106   - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
107   - if($checkphp == true){
108   - echo "Arquivo prj invalido";
109   - unlink($dirmap."/".$nomePrefixo.".shp");
110   - unlink($dirmap."/".$nomePrefixo.".dbf");
111   - unlink($dirmap."/".$nomePrefixo.".shx");
112   - unlink($dirmap."/".$nomePrefixo.".prj");
113   - exit;
114   - }
115   - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
116   - if($checkphp == true){
117   - echo "Arquivo shx invalido";
118   - unlink($dirmap."/".$nomePrefixo.".shp");
119   - unlink($dirmap."/".$nomePrefixo.".dbf");
120   - unlink($dirmap."/".$nomePrefixo.".shx");
121   - unlink($dirmap."/".$nomePrefixo.".prj");
122   - exit;
123   - }
124   - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
125   - if($checkphp == true){
126   - echo "Arquivo dbf invalido";
127   - unlink($dirmap."/".$nomePrefixo.".shp");
128   - unlink($dirmap."/".$nomePrefixo.".dbf");
129   - unlink($dirmap."/".$nomePrefixo.".shx");
130   - unlink($dirmap."/".$nomePrefixo.".prj");
131   - exit;
132   - }
133   -echo $dirmap."/".$nomePrefixo;
134   - echo "<p class='paragrafo' >Arquivo enviado.</p>";
135   - echo "<p class='paragrafo'></p>";
136   - //nesse caso o formulario de upload esta sendo executado de dentro de um mapa interativo, por isso o mapfile ja existe
137   - if(isset($map_file)){
138   - echo "<p class='paragrafo' >Adicionando tema...</p>";
139   - ob_flush();
140   - flush();
141   - sleep(1);
142   - $novolayer = ms_newLayerObj($mapa);
143   - $novolayer->set("data",$dirmap."/".$nomePrefixo.".shp");
144   - $novolayer->set("name",$_FILES['i3GEOuploadshp']['name']);
145   - $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadshp']['name']);
146   - $novolayer->setmetadata("DOWNLOAD","SIM");
147   - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
148   - if(!isset($tipo) || $tipo == "")
149   - {$tipo = $sfileObj->type;}
150   - if ($tipo == 1){$novolayer->set("type",MS_LAYER_POINT);} // ponto
151   - if ($tipo == 3){$novolayer->set("type",MS_LAYER_LINE);}
152   - if ($tipo == 5){$novolayer->set("type",MS_LAYER_POLYGON);}
153   - $novolayer->setmetadata("TEMALOCAL","SIM");
154   - $novolayer->setmetadata("CLASSE","SIM");
155   - $novolayer->setmetadata("TEXTO","NAO");
156   - //if (($tipo != 3) and ($tipo != 8 )){$novolayer->set("type",0);}
157   - $novolayer->setfilter("");
158   - $classe = ms_newClassObj($novolayer);
159   - $classe->set("name","");
160   - $estilo = ms_newStyleObj($classe);
161   - if ($tipo == 1)
162   - {
163   - $estilo->set("symbolname","ponto");
164   - $estilo->set("size",6);
165   - }
166   - $estilo->color->setrgb(200,50,0);
167   - $estilo->outlinecolor->setrgb(0,0,0);
168   - // le os itens
169   - $novolayer->set("status",MS_DEFAULT);
170   - $abriu = $novolayer->open();
171   - $items = $novolayer->getItems();
172   - $fechou = $novolayer->close();
173   - if ($items != "")
174   - {
175   - $its = implode(",",$items);
176   - $novolayer->setmetadata("ITENS",$its);
177   - $novolayer->setmetadata("ITENSDESC",$its);
178   - $novolayer->set("template","none.htm");
179   - }
180   - if(isset($_GET["uploadEPSG"]) && $_GET["uploadEPSG"] != ""){
181   - $novolayer->setProjection("init=epsg:".$_GET["uploadEPSG"]);
182   - }
183   - if(file_exists($dirmap."/".$nomePrefixo.".prj")){
184   - $novolayer->setProjection("AUTO");
185   - }
186   - //$adiciona = ms_newLayerObj($mapa, $novolayer);
187   - $salvo = $mapa->save($map_file);
188   - //grava os templates de cada tema
189   - echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa.";
190   - echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>";
191   - }
192   - elseif($i3GEOuploadCriaMapfile == "on"){
193   - //verifica se o usuario marcou a opcao de cria mapfile
194   - //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera
195   - //ser criado e registrado no sistema
196   - $nome = $nomePrefixo;
197   - $codigo = $nomePrefixo;
198   - $it = $nomePrefixo;
199   - $en = $nomePrefixo;
200   - $es = $nomePrefixo;
201   - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
202   - if(!isset($tipo) || $tipo == ""){
203   - $tipo = $sfileObj->type;
204   - }
205   - if ($tipo == 1){
206   - $tipoLayer = "point";
207   - }
208   - if ($tipo == 3){
209   - $tipoLayer = "line";
210   - }
211   - if ($tipo == 5){
212   - $tipoLayer = "polygon";
213   - }
214   - $funcao = "CRIARNOVOMAP";
215   - $output = "retorno";
216   - $data = $dirmap."/".$nomePrefixo.".shp";
217   - include_once($locaplic."/admin/php/editormapfile.php");
218   - echo "<b><p class='paragrafo' >Criado!!!<br>";
219   - echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >editar</a>";
220   - echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";
221   - }
  102 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
  103 + if($checkphp == true){
  104 + echo "Arquivo prj invalido";
  105 + unlink($dirmap."/".$nomePrefixo.".shp");
  106 + unlink($dirmap."/".$nomePrefixo.".dbf");
  107 + unlink($dirmap."/".$nomePrefixo.".shx");
  108 + unlink($dirmap."/".$nomePrefixo.".prj");
  109 + exit;
  110 + }
  111 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
  112 + if($checkphp == true){
  113 + echo "Arquivo shx invalido";
  114 + unlink($dirmap."/".$nomePrefixo.".shp");
  115 + unlink($dirmap."/".$nomePrefixo.".dbf");
  116 + unlink($dirmap."/".$nomePrefixo.".shx");
  117 + unlink($dirmap."/".$nomePrefixo.".prj");
  118 + exit;
  119 + }
  120 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
  121 + if($checkphp == true){
  122 + echo "Arquivo dbf invalido";
  123 + unlink($dirmap."/".$nomePrefixo.".shp");
  124 + unlink($dirmap."/".$nomePrefixo.".dbf");
  125 + unlink($dirmap."/".$nomePrefixo.".shx");
  126 + unlink($dirmap."/".$nomePrefixo.".prj");
  127 + exit;
  128 + }
  129 + echo "<p class='paragrafo' >Arquivo enviado.</p>";
  130 + echo "<p class='paragrafo'></p>";
  131 + if($i3GEOuploadCriaMapfile == "on"){
  132 + //verifica se o usuario marcou a opcao de cria mapfile
  133 + //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera
  134 + //ser criado e registrado no sistema
  135 + $nome = $nomePrefixo;
  136 + $codigo = $nomePrefixo;
  137 + $it = $nomePrefixo;
  138 + $en = $nomePrefixo;
  139 + $es = $nomePrefixo;
  140 + $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
  141 + if(!isset($tipo) || $tipo == ""){
  142 + $tipo = $sfileObj->type;
  143 + }
  144 + if ($tipo == 1){
  145 + $tipoLayer = "point";
  146 + }
  147 + if ($tipo == 3){
  148 + $tipoLayer = "line";
  149 + }
  150 + if ($tipo == 5){
  151 + $tipoLayer = "polygon";
  152 + }
  153 + $funcao = "CRIARNOVOMAP";
  154 + $output = "retorno";
  155 + $data = $dirmap."/".$nomePrefixo.".shp";
  156 + include_once($locaplic."/admin/php/editormapfile.php");
  157 + echo "<b><p class='paragrafo' >Criado!!!<br>";
  158 + echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >editar</a>";
  159 + echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";
  160 + }
222 161 }
223 162 else
224 163 {
225   - echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
  164 + echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
226 165 }
227   -restauraCon($map_file,$postgis_mapa);
228 166 paraAguarde();
229 167 function paraAguarde(){
230   - echo "<script>try{window.scrollTo(0,10000);window.parent.i3GEOF.upload.aguarde.visibility='hidden';}catch(e){};</script>";
  168 + echo "<script>try{window.scrollTo(0,10000);window.parent.i3GEOF.upload.aguarde.visibility='hidden';}catch(e){};</script>";
231 169 }
232 170 function verificaNome($nome){
233   - if(strlen(basename($nome)) > 200){
234   - exit;
235   - }
236   - $nome = strtolower($nome);
237   - $lista = explode(".",$nome);
238   - $extensao = $lista[count($lista) - 1];
239   - if(($extensao != "dbf") && ($extensao != "shx") && ($extensao != "shp") && ($extensao != "prj"))
240   - {
241   - echo "Nome de arquivo inv&aacute;lido. $nome";
242   - paraAguarde();
243   - exit;
244   - }
  171 + if(strlen(basename($nome)) > 200){
  172 + exit;
  173 + }
  174 + $nome = strtolower($nome);
  175 + $lista = explode(".",$nome);
  176 + $extensao = $lista[count($lista) - 1];
  177 + if(($extensao != "dbf") && ($extensao != "shx") && ($extensao != "shp") && ($extensao != "prj"))
  178 + {
  179 + echo "Nome de arquivo inv&aacute;lido. $nome";
  180 + paraAguarde();
  181 + exit;
  182 + }
245 183 }
246 184 ?>
247 185 </body>
... ...
classesjs/dicionario.js
... ... @@ -879,9 +879,9 @@ var g_traducao =
879 879 ],
880 880 "a3a" : [
881 881 {
882   - pt : "Importar Web Map Context (WMC)",
883   - en : "Import Web Map Context (WMC)",
884   - es : "Importar Web Map Context (WMC)"
  882 + pt : "Importar Web Map Context",
  883 + en : "Import Web Map Context",
  884 + es : "Importar Web Map Context"
885 885 }
886 886 ],
887 887 "a4" : [
... ... @@ -970,9 +970,9 @@ var g_traducao =
970 970 ],
971 971 "a14" : [
972 972 {
973   - pt : "Upload SHP, CSV, DBF, GPX, KML",
974   - en : "Upload SHP, CSV, DBF, GPX, KML",
975   - es : "Subir SHP, CSV, DBF, GPX, KML"
  973 + pt : "Upload SHP, CSV...",
  974 + en : "Upload SHP, CSV...",
  975 + es : "Subir SHP, CSV..."
976 976 }
977 977 ],
978 978 "a15" : [
... ...
ferramentas/upload/dicionario.js
1 1 //+$trad(1,i3GEOF.upload.dicionario)+
2 2 i3GEOF.upload.dicionario = {
3 3 'pastaArmazenamento' : [ {
4   - pt : "Pasta no servidor onde os dados ser&atilde;o armazenados (obrigat&oacute;rio se voc&ecirc; estiver utilizando o formul&aacute;rio dentro do sistema de administra&ccedil;&atilde;o)",
  4 + pt : "Pasta no servidor onde os dados ser&atilde;o armazenados",
5 5 en : "",
6 6 es : ""
7 7 } ],
... ...
js/dicionario.js
... ... @@ -879,9 +879,9 @@ var g_traducao =
879 879 ],
880 880 "a3a" : [
881 881 {
882   - pt : "Importar Web Map Context (WMC)",
883   - en : "Import Web Map Context (WMC)",
884   - es : "Importar Web Map Context (WMC)"
  882 + pt : "Importar Web Map Context",
  883 + en : "Import Web Map Context",
  884 + es : "Importar Web Map Context"
885 885 }
886 886 ],
887 887 "a4" : [
... ... @@ -970,9 +970,9 @@ var g_traducao =
970 970 ],
971 971 "a14" : [
972 972 {
973   - pt : "Upload SHP, CSV, DBF, GPX, KML",
974   - en : "Upload SHP, CSV, DBF, GPX, KML",
975   - es : "Subir SHP, CSV, DBF, GPX, KML"
  973 + pt : "Upload SHP, CSV...",
  974 + en : "Upload SHP, CSV...",
  975 + es : "Subir SHP, CSV..."
976 976 }
977 977 ],
978 978 "a15" : [
... ...