Commit a92bc5f5bf3e346c5624c43511274dceb7a70992
1 parent
b1d268e2
Exists in
master
and in
7 other branches
Criação do formulário para upload de arquivos CSV para o servidor de banco de da…
…dos e criação automática do respectivo arquivo de configuração mapfile.
Showing
13 changed files
with
1044 additions
and
15 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin1/catalogo/mapfile/preview/index.php
@@ -233,5 +233,204 @@ function nomeRand($n=10) | @@ -233,5 +233,204 @@ function nomeRand($n=10) | ||
233 | } | 233 | } |
234 | return $nomes; | 234 | return $nomes; |
235 | } | 235 | } |
236 | +function autoClasses(&$nlayer, $mapa, $locaplic = null) { | ||
237 | + $postgis_mapa = $_SESSION ["postgis_mapa"]; | ||
238 | + ; | ||
239 | + $substituicon = "nao"; | ||
240 | + if ($nlayer->connectiontype == MS_POSTGIS) { | ||
241 | + if ($nlayer->connection == " ") { | ||
242 | + $nlayer->set ( "connection", $postgis_mapa ); | ||
243 | + $substituicon = "sim"; | ||
244 | + } | ||
245 | + } | ||
246 | + // | ||
247 | + // gera classes automaticamente (temas vetoriais) | ||
248 | + if ($nlayer->getmetadata ( "classesitem" ) != "") { | ||
249 | + $itemnome = $nlayer->getmetadata ( "classesnome" ); | ||
250 | + $itemid = $nlayer->getmetadata ( "classesitem" ); | ||
251 | + $itemcor = $nlayer->getmetadata ( "classescor" ); | ||
252 | + $itemsimbolo = $nlayer->getmetadata ( "classesimbolo" ); | ||
253 | + $itemtamanho = $nlayer->getmetadata ( "classestamanho" ); | ||
254 | + $classeoriginal = $nlayer->getclass ( 0 ); | ||
255 | + // | ||
256 | + // pega a extensao geografica que devera ser utilizada | ||
257 | + // | ||
258 | + $prjMapa = $mapa->getProjection (); | ||
259 | + $prjTema = $nlayer->getProjection (); | ||
260 | + $ret = $nlayer->getmetadata ( "extensao" ); | ||
261 | + if ($ret == "") { | ||
262 | + $ret = $nlayer->getextent (); | ||
263 | + // reprojeta o retangulo | ||
264 | + if (($prjTema != "") && ($prjMapa != $prjTema)) { | ||
265 | + $projInObj = ms_newprojectionobj ( $prjTema ); | ||
266 | + $projOutObj = ms_newprojectionobj ( $prjMapa ); | ||
267 | + $ret->project ( $projInObj, $projOutObj ); | ||
268 | + } | ||
269 | + } else { | ||
270 | + $temp = explode ( " ", $ret ); | ||
271 | + $ret = ms_newRectObj (); | ||
272 | + $ret->setextent ( $temp [0], $temp [1], $temp [2], $temp [3] ); | ||
273 | + } | ||
274 | + // | ||
275 | + $sopen = $nlayer->open (); | ||
276 | + if ($sopen == MS_FAILURE) { | ||
277 | + return "erro"; | ||
278 | + } | ||
236 | 279 | ||
280 | + $status = $nlayer->whichShapes ( $ret ); | ||
281 | + $parametrosClasses = array (); | ||
282 | + if ($status == 0) { | ||
283 | + while ( $shape = $nlayer->nextShape () ) { | ||
284 | + $id = trim ( $shape->values [$itemid] ); | ||
285 | + if (! $parametrosClasses [$id]) { | ||
286 | + $nome = ""; | ||
287 | + if ($itemnome != "") | ||
288 | + $nome = trim ( $shape->values [$itemnome] ); | ||
289 | + $cor = ""; | ||
290 | + if ($itemcor != "") | ||
291 | + $cor = explode ( ",", trim ( $shape->values [$itemcor] ) ); | ||
292 | + if (count ( $cor ) != 3) | ||
293 | + $cor = explode ( " ", trim ( $shape->values [$itemcor] ) ); | ||
294 | + $tamanho = ""; | ||
295 | + if ($itemtamanho != "") | ||
296 | + $tamanho = trim ( $shape->values [$itemtamanho] ); | ||
297 | + $simbolo = ""; | ||
298 | + if ($itemsimbolo != "") | ||
299 | + $simbolo = trim ( $shape->values [$itemsimbolo] ); | ||
300 | + $parametrosClasses [$id] = array ( | ||
301 | + "nome" => $nome, | ||
302 | + "cor" => $cor, | ||
303 | + "tamanho" => $tamanho, | ||
304 | + "simbolo" => $simbolo | ||
305 | + ); | ||
306 | + } | ||
307 | + } | ||
308 | + $fechou = $nlayer->close (); | ||
309 | + // echo "<pre>";var_dump($parametrosClasses); | ||
310 | + if (count ( $parametrosClasses ) > 0) { | ||
311 | + $ids = array_keys ( $parametrosClasses ); | ||
312 | + for($i = 0; $i < count ( $parametrosClasses ); ++ $i) { | ||
313 | + $p = $parametrosClasses [$ids [$i]]; | ||
314 | + // echo "<pre>";var_dump($p); | ||
315 | + $nclasse = ms_newClassObj ( $nlayer, $classeoriginal ); | ||
316 | + if ($p ["nome"] != "") | ||
317 | + $nclasse->set ( "name", $p ["nome"] ); | ||
318 | + $estilo = $nclasse->getstyle ( 0 ); | ||
319 | + if ($p ["cor"] != "") { | ||
320 | + $cor = $p ["cor"]; | ||
321 | + $ncor = $estilo->color; | ||
322 | + if ($ncor == "") | ||
323 | + $ncor = $estilo->outlinecolor; | ||
324 | + $ncor->setrgb ( $cor [0], $cor [1], $cor [2] ); | ||
325 | + } | ||
326 | + if ($p ["tamanho"] != "") | ||
327 | + $estilo->set ( "size", $p ["tamanho"] ); | ||
328 | + if ($p ["simbolo"] != "") | ||
329 | + $estilo->set ( "symbolname", $p ["simbolo"] ); | ||
330 | + $strE = "('[" . $itemid . "]'eq'" . $ids [$i] . "')"; | ||
331 | + $nclasse->setexpression ( $strE ); | ||
332 | + } | ||
333 | + $classeoriginal->set ( "status", MS_DELETE ); | ||
334 | + } | ||
335 | + } | ||
336 | + if ($substituicon == "sim") { | ||
337 | + $nlayer->set ( "connection", " " ); | ||
338 | + } | ||
339 | + } | ||
340 | + $pf = $nlayer->getmetadata ( "palletefile" ); | ||
341 | + if ($pf != "") { | ||
342 | + if (! file_exists ( $pf )) { | ||
343 | + return; | ||
344 | + } | ||
345 | + $ps = $nlayer->getmetadata ( "palletesteps" ); | ||
346 | + if ($ps == "") | ||
347 | + $ps = 8; | ||
348 | + // | ||
349 | + // pega os valores do arquivo | ||
350 | + // | ||
351 | + $rules = array (); | ||
352 | + $abre = fopen ( $pf, "r" ); | ||
353 | + $paletteRules = array (); | ||
354 | + while ( ! feof ( $abre ) ) { | ||
355 | + $line = trim ( fgets ( $abre ) ); | ||
356 | + $pos = strpos ( $line, "#" ); | ||
357 | + if ($pos === false || $pos > 0) { | ||
358 | + $paletteEntry = explode ( " ", $line ); | ||
359 | + $rules [] = array ( | ||
360 | + "v0" => $paletteEntry [0], | ||
361 | + "v1" => $paletteEntry [1], | ||
362 | + "r0" => $paletteEntry [2], | ||
363 | + "g0" => $paletteEntry [3], | ||
364 | + "b0" => $paletteEntry [4], | ||
365 | + "r1" => $paletteEntry [5], | ||
366 | + "g1" => $paletteEntry [6], | ||
367 | + "b1" => $paletteEntry [7] | ||
368 | + ); | ||
369 | + } | ||
370 | + } | ||
371 | + fclose ( $abre ); | ||
372 | + foreach ( $rules as $rule ) { | ||
373 | + $delta = ceil ( ($rule ["v1"] - $rule ["v0"]) / $ps ); | ||
374 | + $legenda = true; | ||
375 | + for($value = $rule ["v0"]; $value < $rule ["v1"]; $value += $delta) { | ||
376 | + $class = ms_newClassObj ( $nlayer ); | ||
377 | + $style = ms_newStyleObj ( $class ); | ||
378 | + if ($legenda) { | ||
379 | + $class->set ( name, round ( $value, 0 ) ); | ||
380 | + $legenda = true; | ||
381 | + } | ||
382 | + $expression = "([pixel] > " . round ( $value, 0 ) . " AND [pixel] <= " . round ( $value + $delta, 0 ) . ")"; | ||
383 | + $class->setExpression ( $expression ); | ||
384 | + $rgb = getRGBpallete ( $rule, $value ); | ||
385 | + $style->color->setRGB ( $rgb [0], $rgb [1], $rgb [2] ); | ||
386 | + } | ||
387 | + } | ||
388 | + } | ||
389 | + return; | ||
390 | +} | ||
391 | +function getRGBpallete($rule, $value) { | ||
392 | + $escala = ($value - $rule ["v0"]) / ($rule ["v1"] - $rule ["v0"]); | ||
393 | + $r = $rule ["r0"] + round ( ($rule ["r1"] - $rule ["r0"]) * $escala, 0 ); | ||
394 | + $g = $rule ["g0"] + round ( ($rule ["g1"] - $rule ["g0"]) * $escala, 0 ); | ||
395 | + $b = $rule ["b0"] + round ( ($rule ["b1"] - $rule ["b0"]) * $escala, 0 ); | ||
396 | + return array ( | ||
397 | + $r, | ||
398 | + $g, | ||
399 | + $b | ||
400 | + ); | ||
401 | +} | ||
402 | +function cloneInlineSymbol($layern, $nmapa, $mapa) { | ||
403 | + $numclasses = $layern->numclasses; | ||
404 | + for($ci = 0; $ci < $numclasses; $ci ++) { | ||
405 | + $classe = $layern->getclass ( $ci ); | ||
406 | + $numestilos = $classe->numstyles; | ||
407 | + for($ei = 0; $ei < $numestilos; $ei ++) { | ||
408 | + $estilo = $classe->getstyle ( $ei ); | ||
409 | + if ($estilo->symbolname != "") { | ||
410 | + $nomesimbolo = $estilo->symbolname; | ||
411 | + $simbolo = $nmapa->getSymbolObjectById ( $nmapa->getSymbolByName ( $nomesimbolo ) ); | ||
412 | + if ($simbolo->inmapfile == MS_TRUE || file_exists ( $nomesimbolo )) { | ||
413 | + $simbolon = new symbolObj ( $mapa, $nomesimbolo ); | ||
414 | + $simbolon->set ( "inmapfile", MS_TRUE ); | ||
415 | + | ||
416 | + $simbolon->setImagePath ( $simbolo->imagepath ); | ||
417 | + $simbolon->setPoints ( $simbolo->getPointsArray () ); | ||
418 | + // $simbolon->setPattern($simbolo->getPatternArray()); | ||
419 | + $simbolon->set ( "type", $simbolo->type ); | ||
420 | + // $simbolon->set("antialias",$simbolo->antialias); | ||
421 | + $simbolon->set ( "character", $simbolo->character ); | ||
422 | + $simbolon->set ( "filled", $simbolo->filled ); | ||
423 | + | ||
424 | + // $simbolon->set("font",$simbolo->font); | ||
425 | + // $simbolon->set("position",$simbolo->position); | ||
426 | + $simbolon->set ( "sizex", $simbolo->sizex ); | ||
427 | + $simbolon->set ( "sizey", $simbolo->sizey ); | ||
428 | + $simbolon->set ( "transparent", $simbolo->transparent ); | ||
429 | + $simbolon->set ( "transparentcolor", $simbolo->transparentcolor ); | ||
430 | + // $simbolon->set("anchorpoint",$simbolo->anchorpoint); | ||
431 | + } | ||
432 | + } | ||
433 | + } | ||
434 | + } | ||
435 | +} | ||
237 | ?> | 436 | ?> |
admin1/dicionario/menup.js
@@ -330,5 +330,10 @@ i3GEOadmin.menup.dicionario = { | @@ -330,5 +330,10 @@ i3GEOadmin.menup.dicionario = { | ||
330 | pt : "Importar shapefile para Postgis", | 330 | pt : "Importar shapefile para Postgis", |
331 | en : "", | 331 | en : "", |
332 | es : "" | 332 | es : "" |
333 | + } ], | ||
334 | + 'csv2pg' : [ { | ||
335 | + pt : "Importar CSV para Postgis", | ||
336 | + en : "", | ||
337 | + es : "" | ||
333 | } ] | 338 | } ] |
334 | }; | 339 | }; |
admin1/dicionario/uploadshp.js
@@ -146,5 +146,40 @@ i3GEOadmin.uploadshp.dicionario = { | @@ -146,5 +146,40 @@ i3GEOadmin.uploadshp.dicionario = { | ||
146 | pt : "Alias da conexão com o banco de dados. Será utilizado apenas para o caso de construção do arquivo mapfile.", | 146 | pt : "Alias da conexão com o banco de dados. Será utilizado apenas para o caso de construção do arquivo mapfile.", |
147 | en : "", | 147 | en : "", |
148 | es : "" | 148 | es : "" |
149 | + } ], | ||
150 | + 'txtTituloCsv2Pg' : [ { | ||
151 | + pt : "Importação de arquivo CSV para Postgis", | ||
152 | + en : "", | ||
153 | + es : "" | ||
154 | + } ], | ||
155 | + 'txtDescCsv2Pg' : [ { | ||
156 | + pt : "Faz o upload de um arquivo CSV e converte para o banco de dados Postgis existente no servidor web. Permite ainda a conversão de colunas com a latitude e longitude em uma coluna do tipo geometria.", | ||
157 | + en : "", | ||
158 | + es : "" | ||
159 | + } ], | ||
160 | + 'txtAjudaCsv2Pg' : [ { | ||
161 | + pt : "No formulário deve-se indicar o arquivo no formato CSV. O arquivo é enviado ao servidor e armazenado temporariamente para que a conversão para Postgis seja possível. O resultado do processo será uma tabela no banco de dados no esquema escolhido pelo usuário. O acesso ao banco é feito por meio do usuário administrativo da aplicação i3Geo (o mesmo que gerencia o sistema de administração, veja em ms_configura.php). Esse usuário, definido pelo administrador do servidor, deve ter os direitos de escrita no esquema do banco de dados escolhido para importar os dados.", | ||
162 | + en : "", | ||
163 | + es : "" | ||
164 | + } ], | ||
165 | + 'txtArquivoCsv' : [ { | ||
166 | + pt : "Escolha o arquivo texto no formato CSV", | ||
167 | + en : "", | ||
168 | + es : "" | ||
169 | + } ], | ||
170 | + 'sridOrigemCsv' : [ { | ||
171 | + pt : "Código numérico SRID (projeção cartográfica) referente aos dados das colunas x e y caso sejam especificadas", | ||
172 | + en : "", | ||
173 | + es : "" | ||
174 | + } ], | ||
175 | + 'colunaX' : [ { | ||
176 | + pt : "Nome da coluna no arquivo CSV que contém os valores de coordenadas do eixo x (longitude)", | ||
177 | + en : "", | ||
178 | + es : "" | ||
179 | + } ], | ||
180 | + 'colunaY' : [ { | ||
181 | + pt : "Nome da coluna no arquivo CSV que contém os valores de coordenadas do eixo y (latitude)", | ||
182 | + en : "", | ||
183 | + es : "" | ||
149 | } ] | 184 | } ] |
150 | }; | 185 | }; |
admin1/menu.js
@@ -66,6 +66,8 @@ menuPrincipal = [ | @@ -66,6 +66,8 @@ menuPrincipal = [ | ||
66 | },{ | 66 | },{ |
67 | html: "<a href='" + i3GEO.configura.locaplic + "/admin1/upload/shp2pg/index.php' >"+$trad("shp2pg",i3GEOadmin.menup.dicionario)+"</a>" | 67 | html: "<a href='" + i3GEO.configura.locaplic + "/admin1/upload/shp2pg/index.php' >"+$trad("shp2pg",i3GEOadmin.menup.dicionario)+"</a>" |
68 | },{ | 68 | },{ |
69 | + html: "<a href='" + i3GEO.configura.locaplic + "/admin1/upload/csv2pg/index.php' >"+$trad("csv2pg",i3GEOadmin.menup.dicionario)+"</a>" | ||
70 | + },{ | ||
69 | html: "<a href='" + i3GEO.configura.locaplic + "/admin1/upload/simbolo/index.php' >"+$trad("uploadSimbolo",i3GEOadmin.menup.dicionario)+"</a>" | 71 | html: "<a href='" + i3GEO.configura.locaplic + "/admin1/upload/simbolo/index.php' >"+$trad("uploadSimbolo",i3GEOadmin.menup.dicionario)+"</a>" |
70 | } | 72 | } |
71 | ]},{ | 73 | ]},{ |
admin1/upload/arquivo/exec.php
@@ -213,6 +213,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -213,6 +213,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
213 | $layer->setprojection("AUTO"); | 213 | $layer->setprojection("AUTO"); |
214 | } | 214 | } |
215 | $mapa->save ( $_SESSION ["locaplic"] . "/temas/" . $codigo . ".map" ); | 215 | $mapa->save ( $_SESSION ["locaplic"] . "/temas/" . $codigo . ".map" ); |
216 | + \admin\php\funcoesAdmin\removeCabecalhoMapfile ( $_SESSION ["locaplic"] . "/temas/" . $codigo . ".map" ); | ||
216 | echo "<div class='alert alert-success' role='alert'>Mapfile $nomePrefixo criado!!!</div>"; | 217 | echo "<div class='alert alert-success' role='alert'>Mapfile $nomePrefixo criado!!!</div>"; |
217 | } else { | 218 | } else { |
218 | echo "<div class='alert alert-danger' role='alert'>Mapfile não pode ser criado criado!!!</div>"; | 219 | echo "<div class='alert alert-danger' role='alert'>Mapfile não pode ser criado criado!!!</div>"; |
@@ -0,0 +1,476 @@ | @@ -0,0 +1,476 @@ | ||
1 | +<?php | ||
2 | +/****************************************************************/ | ||
3 | +// | ||
4 | +// checa login | ||
5 | +// valida _GET e _POST, juntando em _GET | ||
6 | +// pega algumas variaveis de uso mais comum | ||
7 | +// session_start | ||
8 | +// | ||
9 | +include ("../../php/checaLogin.php"); | ||
10 | +\admin\php\login\checaLogin (); | ||
11 | +// funcoes de administracao | ||
12 | +include ($_SESSION ["locaplic"] . "/admin1/php/funcoesAdmin.php"); | ||
13 | +// | ||
14 | +// carrega outras funcoes e extensoes do PHP | ||
15 | +// | ||
16 | +include ($_SESSION ["locaplic"] . "/classesphp/carrega_ext.php"); | ||
17 | +// | ||
18 | +// conexao com o banco de administracao | ||
19 | +// cria as variaveis $dbh e $dbhw alem de conexaoadmin | ||
20 | +// | ||
21 | +include ($_SESSION ["locaplic"] . "/admin1/php/conexao.php"); | ||
22 | +/** | ||
23 | + * ************************************************************ | ||
24 | + */ | ||
25 | +if (\admin\php\funcoesAdmin\verificaOperacaoSessao ( "admin/html/subirshapefile" ) === false) { | ||
26 | + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" ); | ||
27 | + exit (); | ||
28 | +} | ||
29 | +if (! isset ( $idioma ) || $idioma == "") { | ||
30 | + $idioma = "pt"; | ||
31 | +} | ||
32 | + | ||
33 | +if (isset ( $_GET ["tipo"] )) { | ||
34 | + $tipo = $_GET ["tipo"]; | ||
35 | +} | ||
36 | +if (! isset ( $_FILES ['i3GEOuploadcsv'] ['name'] )) { | ||
37 | + return; | ||
38 | +} | ||
39 | +?> | ||
40 | +<!DOCTYPE html> | ||
41 | +<html lang="pt-br"> | ||
42 | +<head> | ||
43 | +<META HTTP-EQUIV="Content-Type"> | ||
44 | +<meta charset='utf-8'> | ||
45 | +<meta http-equiv='X-UA-Compatible' content='IE=edge'> | ||
46 | +<meta name='viewport' content='width=device-width, initial-scale=1'> | ||
47 | +<link rel='stylesheet' type='text/css' href='../../../pacotes/jquery/jquery-ui/jquery-ui.min.css'> | ||
48 | +<link rel='stylesheet' type='text/css' href='//fonts.googleapis.com/css?family=Roboto:300,400,500,700'> | ||
49 | +<link rel='stylesheet' type='text/css' href='//fonts.googleapis.com/icon?family=Material+Icons'> | ||
50 | +<!-- Bootstrap core CSS --> | ||
51 | +<link href='../../../pacotes/bootstrap/css/bootstrap.min.css' rel='stylesheet'> | ||
52 | +<!-- Bootstrap Material Design --> | ||
53 | +<link rel='stylesheet' type='text/css' href='../../../pacotes/bootstrap-material-design/dist/css/bootstrap-material-design.min.css'> | ||
54 | +<link rel='stylesheet' type='text/css' href='../../../pacotes/bootstrap-material-design/dist/css/ripples.min.css'> | ||
55 | +<!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> | ||
56 | +<link href='../../../pacotes/bootstrap/css/ie10-viewport-bug-workaround.css' rel='stylesheet'> | ||
57 | +<!-- Custom styles for this template --> | ||
58 | +<link href='../../../pacotes/font-awesome/css/font-awesome.min.css' rel='stylesheet'> | ||
59 | + | ||
60 | +<link href='../../../pacotes/bootstrap-accessibility-plugin/plugins/css/bootstrap-accessibility.css' rel='stylesheet'> | ||
61 | +<script src='../../../admin1/headjs.php'></script> | ||
62 | +<script src="../../../classesjs/classe_util.js"></script> | ||
63 | +</head> | ||
64 | +<body bgcolor="white" style="background-color: white; text-align: left;"> | ||
65 | + <p> | ||
66 | +<?php | ||
67 | +ob_flush (); | ||
68 | +flush (); | ||
69 | +sleep ( 2 ); | ||
70 | +if (isset ( $_FILES ['i3GEOuploadcsv'] ['name'] )) { | ||
71 | + if (empty ( $_SESSION ["dir_tmp"] )) { | ||
72 | + echo "<div class='alert alert-danger' role='alert'>Pasta não encontrada</div>"; | ||
73 | + exit (); | ||
74 | + } | ||
75 | + echo "<div class='alert alert-info' role='alert'>Carregando o arquivo...</div>"; | ||
76 | + | ||
77 | + ob_flush (); | ||
78 | + flush (); | ||
79 | + sleep ( 2 ); | ||
80 | + | ||
81 | + if (! file_exists ( $_SESSION ["dir_tmp"] ) || empty ( $_SESSION ["dir_tmp"] )) { | ||
82 | + echo "<div class='alert alert-danger' role='alert'>Pasta temporária não existe no servidor</div>"; | ||
83 | + exit (); | ||
84 | + } | ||
85 | + // verifica nomes | ||
86 | + verificaNome ( $_FILES ['i3GEOuploadcsv'] ['name'] ); | ||
87 | + // remove acentos | ||
88 | + $nomePrefixo = "csv2pg" . (rand ( 9000, 10000 )) * - 1; | ||
89 | + // sobe arquivo | ||
90 | + $Arquivo = $_FILES ['i3GEOuploadcsv'] ['tmp_name']; | ||
91 | + $status = move_uploaded_file ( $Arquivo, $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv" ); | ||
92 | + if ($status != 1) { | ||
93 | + echo "<div class='alert alert-danger' role='alert'>Ocorreu um erro no envio do arquivo CSV. Pode ser uma limitação quanto ao tamanho do arquivo ou permissão de escrita na pasta indicada.</div>"; | ||
94 | + exit (); | ||
95 | + } | ||
96 | + if (! file_exists ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv" )) { | ||
97 | + echo "<div class='alert alert-danger' role='alert'>Ocorreu algum problema no envio do arquivo</div>"; | ||
98 | + exit (); | ||
99 | + } | ||
100 | + $checkphp = \admin\php\funcoesAdmin\fileContemString ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv", "<?php" ); | ||
101 | + if ($checkphp == true) { | ||
102 | + echo "<div class='alert alert-danger' role='alert'>Arquivo csv invalido</div>"; | ||
103 | + unlink ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv" ); | ||
104 | + exit (); | ||
105 | + } | ||
106 | + echo "<div class='alert alert-success' role='alert'>Arquivo enviado.</div>"; | ||
107 | + // | ||
108 | + // gera o script para inclusao no banco | ||
109 | + // | ||
110 | + // pega a lista de colunas e identifica o separador utilizado | ||
111 | + $handle = fopen ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv", "r" ); | ||
112 | + $cabecalho = fgets ( $handle ); | ||
113 | + $buffer = str_replace ( '"', '', $cabecalho ); | ||
114 | + $buffer = str_replace ( "'", '', $buffer ); | ||
115 | + $buffer = str_replace ( "\n", '', $buffer ); | ||
116 | + $buffer = str_replace ( "\r", '', $buffer ); | ||
117 | + $colunas = explode ( ";", $buffer ); | ||
118 | + $separador = ";"; | ||
119 | + if (count ( $colunas ) == 1) { | ||
120 | + $colunas = explode ( ",", $buffer ); | ||
121 | + $separador = ","; | ||
122 | + } | ||
123 | + echo "<div class='alert alert-success' role='alert'>Separador de colunas identificado: <b>" . $separador . "</b></p></div>"; | ||
124 | + echo "<div class='alert alert-success' role='alert'>Total de colunas: <b>" . count ( $colunas ) . "</b></p></div>"; | ||
125 | + fclose ( $handle ); | ||
126 | + echo "<div class='alert alert-success' role='alert'>Colunas: <p><pre>"; | ||
127 | + print_r ( $colunas ); | ||
128 | + echo "</pre></p></div>"; | ||
129 | + echo "<div class='alert alert-info' role='alert'>Testando o arquivo <p></div>"; | ||
130 | + ob_flush (); | ||
131 | + flush (); | ||
132 | + sleep ( 2 ); | ||
133 | + // | ||
134 | + // testa as linhas e separadores | ||
135 | + // | ||
136 | + $handle = fopen ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv", "r" ); | ||
137 | + $linhas = array (); | ||
138 | + $ncolunas = count ( $colunas ); | ||
139 | + $linhas50 = array (); | ||
140 | + while ( ! feof ( $handle ) ) { | ||
141 | + $buffer = fgets ( $handle ); | ||
142 | + if ($buffer != $cabecalho) { | ||
143 | + $buffer = str_replace ( "'", '', $buffer ); | ||
144 | + $buffer = str_replace ( "\n", '', $buffer ); | ||
145 | + $buffer = str_replace ( "\r", '', $buffer ); | ||
146 | + if ($buffer != "") { | ||
147 | + $temp = explode ( $separador, $buffer ); | ||
148 | + if (count ( $linhas50 ) < 51) { | ||
149 | + $linhas50 [] = $temp; | ||
150 | + } | ||
151 | + if (count ( $temp ) != $ncolunas) { | ||
152 | + echo "<div class='alert alert-danger' role='alert'>Linha com erro. Processo abortado. <p><pre>"; | ||
153 | + print_r ( $temp ); | ||
154 | + echo "</pre></p></div>"; | ||
155 | + exit (); | ||
156 | + } | ||
157 | + } | ||
158 | + } | ||
159 | + } | ||
160 | + fclose ( $handle ); | ||
161 | + // | ||
162 | + // pega os tipos das colunas | ||
163 | + // | ||
164 | + $contador = 0; | ||
165 | + foreach ( $colunas as $coluna ) { | ||
166 | + $tipo = "numeric"; | ||
167 | + for($i = 1; $i < 50; $i ++) { | ||
168 | + $s = $linhas50 [$i]; | ||
169 | + $v = $s [$contador]; | ||
170 | + if (! is_numeric ( $v )) { | ||
171 | + $tipo = "varchar"; | ||
172 | + } | ||
173 | + } | ||
174 | + $tipoColuna [$colunas [$contador]] = $tipo; | ||
175 | + $contador = $contador + 1; | ||
176 | + } | ||
177 | + echo "<div class='alert alert-success' role='alert'>Tipos das colunas: <p><pre>"; | ||
178 | + print_r ( $tipoColuna ); | ||
179 | + echo "</pre></p></div>"; | ||
180 | + | ||
181 | + $sqinsert = array (); | ||
182 | + | ||
183 | + // verifica autorizacao para o esquema | ||
184 | + if (empty ( $_POST ["i3GEOuploadEsquemaDestino"] ) || ! in_array ( $_POST ["i3GEOuploadEsquemaDestino"], $_SESSION ["i3geoUploadDataWL"] ["postgis"] ["esquemas"] )) { | ||
185 | + echo "<div class='alert alert-danger' role='alert'>Esquema não permitido</div>"; | ||
186 | + exit (); | ||
187 | + } | ||
188 | + | ||
189 | + $conexao = $_SESSION ["i3geoUploadDataWL"] ["postgis"] ["conexao"]; | ||
190 | + try { | ||
191 | + $dbh = new PDO ( 'pgsql:dbname=' . $conexao ["dbname"] . ';user=' . $conexao ["user"] . ';password=' . $conexao ["password"] . ';host=' . $conexao ["host"] . ';port=' . $conexao ["port"] ); | ||
192 | + } catch ( PDOException $e ) { | ||
193 | + echo "<div class='alert alert-danger' role='alert'>Falha ao conectar com o banco</div>"; | ||
194 | + exit (); | ||
195 | + } | ||
196 | + if (empty ( $_POST ["i3GEOuploadNomeTabela"] ) || empty ( $_POST ["i3GEOuploadEsquemaDestino"] )) { | ||
197 | + exit (); | ||
198 | + } | ||
199 | + // gera o script para criar a tabela | ||
200 | + // verifica se a tabela ja existe | ||
201 | + $sql = "SELECT table_name FROM information_schema.tables where table_schema = '" . $_POST ["i3GEOuploadEsquemaDestino"] . "' AND table_name = '" . $_POST ["i3GEOuploadNomeTabela"] . "'"; | ||
202 | + $res = $dbh->query ( $sql, PDO::FETCH_ASSOC ); | ||
203 | + if (count ( $res->fetchAll () ) > 0) { | ||
204 | + $tabelaExiste = true; | ||
205 | + } else { | ||
206 | + $tabelaExiste = false; | ||
207 | + } | ||
208 | + // encoding do banco de dados | ||
209 | + $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '" . $conexao ["dbname"] . "'"; | ||
210 | + $res = $dbh->query ( $sql, PDO::FETCH_ASSOC ); | ||
211 | + $encodingdb = $res->fetchAll (); | ||
212 | + $encodingdb = $encodingdb [0]; | ||
213 | + $encodingdb = $encodingdb ["pg_encoding_to_char"]; | ||
214 | + if ($encodingdb == "UTF8") { | ||
215 | + $encodingdb = "UTF-8"; | ||
216 | + } | ||
217 | + if ($encodingdb == "LATIN1") { | ||
218 | + $encodingdb = "ISO-8859-1"; | ||
219 | + } | ||
220 | + // a tabela nao existe e e do tipo create | ||
221 | + $sqltabela = array (); | ||
222 | + | ||
223 | + if ($tabelaExiste == false && $_POST ["i3GEOuploadTipoOperacao"] == "criar") { | ||
224 | + $sql = "CREATE TABLE " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . "("; | ||
225 | + $temp = array (); | ||
226 | + if (! empty ( $_POST ["i3GEOuploadColunaX"] ) && ! empty ( $_POST ["i3GEOuploadColunaY"] )) { | ||
227 | + $temp [] = "the_geom geometry"; | ||
228 | + } | ||
229 | + foreach ( $colunas as $coluna ) { | ||
230 | + $temp [] = \admin\php\funcoesAdmin\removeAcentos ( strtolower ( $coluna ) ) . " " . $tipoColuna [$coluna]; | ||
231 | + } | ||
232 | + $sql .= implode ( ",", $temp ) . ")WITH(OIDS=FALSE)"; | ||
233 | + $sqltabela [] = $sql; | ||
234 | + $sqltabela [] = "ALTER TABLE " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " OWNER TO " . $conexao ["user"]; | ||
235 | + if (! empty ( $_POST ["i3GEOuploadColunaX"] ) && ! empty ( $_POST ["i3GEOuploadColunaY"] )) { | ||
236 | + $sqltabela [] = "CREATE INDEX " . $_POST ["i3GEOuploadNomeTabela"] . "_indx_thegeom ON " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " USING gist (the_geom )"; | ||
237 | + } | ||
238 | + if (! empty ( $_POST ["comentarioShp"] )) { | ||
239 | + $enc = mb_detect_encoding ( $texto ); | ||
240 | + $_POST ["i3GEOuploadComentario"] = mb_convert_encoding ( $_POST ["i3GEOuploadComentario"], $encodingdb, $enc ); | ||
241 | + $sqltabela [] = "COMMENT ON TABLE " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " IS '" . $_POST ["i3GEOuploadComentario"] . "'"; | ||
242 | + } | ||
243 | + echo "<div class='alert alert-info' role='alert'>Sql tabela: <p><pre>"; | ||
244 | + print_r ( $sqltabela ); | ||
245 | + echo "</pre></p></div>"; | ||
246 | + } | ||
247 | + if ($tabelaExiste == true && $_POST ["i3GEOuploadTipoOperacao"] == "criar") { | ||
248 | + echo "<div class='alert alert-danger' role='alert'>A tabela existe. Não pode ser criada.</div>"; | ||
249 | + exit (); | ||
250 | + } | ||
251 | + // se a tabela existe e e para atualizar os registros | ||
252 | + if ($tabelaExiste == true && $_POST ["i3GEOuploadTipoOperacao"] == "atualizar") { | ||
253 | + $sqltabela [] = "delete from " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"]; | ||
254 | + } | ||
255 | + | ||
256 | + // gera o script para inserir os dados | ||
257 | + echo "<div class='alert alert-success' role='alert'>Preparando inclusão de dados...</div>"; | ||
258 | + ob_flush (); | ||
259 | + flush (); | ||
260 | + sleep ( 1 ); | ||
261 | + | ||
262 | + $linhas = array (); | ||
263 | + $insert = "INSERT INTO " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " (" . strtolower ( \admin\php\funcoesAdmin\removeAcentos ( implode ( ",", $colunas ) ) ) . ")"; | ||
264 | + if (! empty ( $_POST ["i3GEOuploadColunaX"] ) && ! empty ( $_POST ["i3GEOuploadColunaY"] )) { | ||
265 | + $insert = "INSERT INTO " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " (" . strtolower ( \admin\php\funcoesAdmin\removeAcentos ( implode ( ",", $colunas ) ) ) . ",the_geom)"; | ||
266 | + } | ||
267 | + | ||
268 | + $escapar = "'"; | ||
269 | + | ||
270 | + //descobre o indice do array que contem a coluna com x e com y | ||
271 | + $x = ""; | ||
272 | + $y = ""; | ||
273 | + if (! empty ( $_POST ["i3GEOuploadColunaX"] ) && ! empty ( $_POST ["i3GEOuploadColunaY"] )) { | ||
274 | + for($i = 0; $i < count ( $colunas ); $i ++) { | ||
275 | + if($colunas[$i] == $_POST ["i3GEOuploadColunaX"]){ | ||
276 | + $x = $i; | ||
277 | + } | ||
278 | + if($colunas[$i] == $_POST ["i3GEOuploadColunaY"]){ | ||
279 | + $y = $i; | ||
280 | + } | ||
281 | + } | ||
282 | + } | ||
283 | + | ||
284 | + $handle = fopen ( $_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".csv", "r" ); | ||
285 | + $numcsv = 0; | ||
286 | + while ( ! feof ( $handle ) ) { | ||
287 | + $buffer = fgets ( $handle ); | ||
288 | + $numcsv = $numcsv + 1; | ||
289 | + if ($buffer != $cabecalho) { | ||
290 | + $buffer = str_replace ( "'", '', $buffer ); | ||
291 | + $buffer = str_replace ( '"', '', $buffer ); | ||
292 | + $buffer = str_replace ( "\n", '', $buffer ); | ||
293 | + $buffer = str_replace ( "\r", '', $buffer ); | ||
294 | + if ($buffer != "") { | ||
295 | + $l = explode ( $separador, $buffer ); | ||
296 | + $vs = array (); | ||
297 | + for($i = 0; $i < count ( $colunas ); $i ++) { | ||
298 | + $escape = ""; | ||
299 | + if ($tipoColuna [$colunas [$i]] == "varchar") { | ||
300 | + $texto = str_replace(array("'",'"'),"",$l [$i]); | ||
301 | + $enc = mb_detect_encoding ( $texto ); | ||
302 | + $textosl = addcslashes ( $texto, $escapar ); | ||
303 | + if ($textosl != $texto) { | ||
304 | + $escape = "E"; | ||
305 | + } | ||
306 | + if ($enc != "" && $enc != $encodingdb) { | ||
307 | + $textosl = "$escape'" . mb_convert_encoding ( $textosl, $encodingdb, $enc ) . "'"; | ||
308 | + } else { | ||
309 | + $textosl = "$escape'" . $textosl . "'"; | ||
310 | + } | ||
311 | + if ($textosl == "''") { | ||
312 | + $textosl = 'null'; | ||
313 | + } | ||
314 | + $vs [] = $textosl; | ||
315 | + } else { | ||
316 | + $valor = $l [$i]; | ||
317 | + if ($valor == "" || (empty ( $valor ) && $valor != 0)) { | ||
318 | + $valor = 'nulo'; | ||
319 | + } | ||
320 | + $vs [] = $valor; | ||
321 | + } | ||
322 | + } | ||
323 | + if (! empty ( $_POST ["i3GEOuploadColunaX"] ) && ! empty ( $_POST ["i3GEOuploadColunaY"] )) { | ||
324 | + $vx = str_replace(",",".",$l [$x]); | ||
325 | + $vy = str_replace(",",".",$l [ $y]); | ||
326 | + if ($_POST ["i3GEOuploadSridDestino"] == $_POST ["i3GEOuploadSridOrigem"]) { | ||
327 | + $vs[] = "ST_PointFromText('POINT(". $vx . " " . $vy .")','".$_POST["i3GEOuploadSridDestino"]."')"; | ||
328 | + } else { | ||
329 | + $vs[] = "ST_transform (ST_PointFromText('POINT(". $vx . " " . $vy .")','".$_POST["i3GEOuploadSridDestino"]."')," . $_POST["i3GEOuploadSridDestino"] . ")"; | ||
330 | + } | ||
331 | + } | ||
332 | + $str = implode ( ",", $vs ); | ||
333 | + $str = str_replace ( "nulo", 'null', $str ); | ||
334 | + $linhas [] = $insert . "VALUES(" . $escape . "" . $str . ")"; | ||
335 | + } | ||
336 | + } | ||
337 | + } | ||
338 | + fclose ( $handle ); | ||
339 | + | ||
340 | + if (! in_array ( $_POST ["i3GEOuploadColunaGid"], $colunas ) && $_POST ["i3GEOuploadTipoOperacao"] == "criar") { | ||
341 | + $linhas [] = "alter table " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . " add " . $_POST ["i3GEOuploadColunaGid"] . " serial CONSTRAINT " . $_POST ["i3GEOuploadNomeTabela"] . "_gid_pkey PRIMARY KEY"; | ||
342 | + } | ||
343 | + | ||
344 | + if ($_POST ["i3GEOuploadApenasScript"] == "on") { | ||
345 | + echo "<div class='alert alert-info' role='alert'>Sql de inserção de dados: <p><pre>"; | ||
346 | + foreach ( $linhas as $linha ) { | ||
347 | + echo ( $linha ) . "\n"; | ||
348 | + } | ||
349 | + echo "</pre></p></div>"; | ||
350 | + } else { | ||
351 | + // aqui o sql e executado verdadeiramente | ||
352 | + // antes e feito um backup da tabela | ||
353 | + | ||
354 | + // $sqltabela sera vazio se a tabela ja existir | ||
355 | + foreach ( $sqltabela as $linha ) { | ||
356 | + try { | ||
357 | + $dbh->query ( $linha ); | ||
358 | + } catch ( PDOException $e ) { | ||
359 | + echo "<div class='alert alert-danger' role='alert'>Não foi possível criar a tabela<p><pre>"; | ||
360 | + exit (); | ||
361 | + } | ||
362 | + } | ||
363 | + // para testar com acentuacao diferente | ||
364 | + $conexao = $_SESSION ["i3geoUploadDataWL"] ["postgis"] ["conexao"]; | ||
365 | + $bdcon = pg_connect ( 'dbname=' . $conexao ["dbname"] . ' user=' . $conexao ["user"] . ' password=' . $conexao ["password"] . ' host=' . $conexao ["host"] . ' port=' . $conexao ["port"] . "options='-c client_encoding=LATIN1'" ); | ||
366 | + echo "<div class='alert alert-info' role='alert'>Sql de inserção de dados com erros ou modificados: <p><pre>"; | ||
367 | + foreach ( $linhas as $linha ) { | ||
368 | + try { | ||
369 | + | ||
370 | + $res = $dbh->query ( $linha ); | ||
371 | + if ($res == false) { | ||
372 | + $res = pg_query ( $bdcon, $linha ); | ||
373 | + if ($res == false) { | ||
374 | + $linha = remove_accents ( $linha ); | ||
375 | + $res = $dbh->query ( $linha ); | ||
376 | + if ($res == false) { | ||
377 | + $res = pg_query ( $bdcon, $linha ); | ||
378 | + if ($res == false) { | ||
379 | + echo "<p><span style=color:red >Erro em: </span>$linha</p>"; | ||
380 | + } | ||
381 | + } else { | ||
382 | + echo "<p><span style=color:red >Acentos removidos: $linha</span></p>"; | ||
383 | + } | ||
384 | + } | ||
385 | + } | ||
386 | + | ||
387 | + } catch ( PDOException $e ) { | ||
388 | + echo "<div class='alert alert-danger' role='alert'>Não foi possível executar os SQLs<p><pre>"; | ||
389 | + } | ||
390 | + } | ||
391 | + echo "</pre></p></div>"; | ||
392 | + $sql = "select * from " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"]; | ||
393 | + $q = $dbh->query ( $sql, PDO::FETCH_ASSOC ); | ||
394 | + $r = $q->fetchAll (); | ||
395 | + | ||
396 | + echo "<div class='alert alert-info' role='alert'>"; | ||
397 | + echo "<p>Registros existentes no CSV: $numcsv</p>"; | ||
398 | + | ||
399 | + echo "<p>Registros na tabela final: " . count ( $r ) . "</p>"; | ||
400 | + echo "<p>Diferenças podem ocorrer em função de caracteres acentuados não suportados pelo banco de dados</p>"; | ||
401 | + echo "<p><b>Feito!!!</p>"; | ||
402 | + echo "</div>"; | ||
403 | + } | ||
404 | + // | ||
405 | + ob_flush (); | ||
406 | + flush (); | ||
407 | + sleep ( 2 ); | ||
408 | + | ||
409 | + $nomeMapfile = $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map"; | ||
410 | + if ($_POST ["i3GEOuploadCriaMapfile"] == "on" && file_exists ( $nomeMapfile )) { | ||
411 | + echo "<div class='alert alert-danger' role='alert'>Arquivo mapfile com o nome " . $_POST ["i3GEOuploadNomeTabela"] . "já existe.</div>"; | ||
412 | + $_POST ["i3GEOuploadCriaMapfile"] = ""; | ||
413 | + } | ||
414 | + if ($_POST ["i3GEOuploadCriaMapfile"] == "on" && $_POST ["i3GEOuploadAliasConexao"] != "") { | ||
415 | + $mapObj = ms_newMapObjFromString ( "MAP END" ); | ||
416 | + $layer = ms_newLayerObj ( $mapObj ); | ||
417 | + $mapObj->setProjection ( "init=epsg:" . $_POST ["i3GEOuploadSridDestino"] ); | ||
418 | + $layer->setProjection ( "init=epsg:" . $_POST ["i3GEOuploadSridDestino"] ); | ||
419 | + | ||
420 | + $_POST ["i3GEOuploadAliasConexao"] = str_replace ( " ", "", $_POST ["i3GEOuploadAliasConexao"] ); | ||
421 | + if (! in_array ( $_POST ["i3GEOuploadAliasConexao"], array_keys ( $_SESSION ["postgis_mapa"] ) )) { | ||
422 | + echo "<div class='alert alert-danger' role='alert'>Alias para a conexão com o banco não definida</div>"; | ||
423 | + } else { | ||
424 | + echo "<div class='alert alert-success' role='alert'>Criando mapfile...</div>"; | ||
425 | + ob_flush (); | ||
426 | + flush (); | ||
427 | + sleep ( 2 ); | ||
428 | + $tipoLayer = MS_LAYER_POINT; | ||
429 | + include ($_SESSION ["locaplic"] . "/admin1/catalogo/mapfile/funcoes.php"); | ||
430 | + $cria = \admin\catalogo\mapfile\adicionar ( $_SESSION ["locaplic"], $_POST ["i3GEOuploadNomeTabela"], "", $_POST ["i3GEOuploadNomeTabela"], "", "", $_POST ["i3GEOuploadNomeTabela"], "", $_POST ["i3GEOuploadNomeTabela"], $_POST ["i3GEOuploadNomeTabela"], true, $dbhw ); | ||
431 | + if ($cria == true && file_exists ( $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map" )) { | ||
432 | + $mapa = ms_newMapObj ( $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map" ); | ||
433 | + $layer = $mapa->getLayerByName ( $_POST ["i3GEOuploadNomeTabela"] ); | ||
434 | + $layer->set ( "data", "the_geom from (select * from " . $_POST ["i3GEOuploadEsquemaDestino"] . "." . $_POST ["i3GEOuploadNomeTabela"] . ") as foo using unique " . $_POST ["i3GEOuploadColunaGid"] . " using srid=" . $_POST ["i3GEOuploadSridDestino"] ); | ||
435 | + $layer->set ( "connection", $_POST ["i3GEOuploadAliasConexao"] ); | ||
436 | + $layer->setconnectiontype ( 6 ); | ||
437 | + $layer->set ( "type", $tipoLayer ); | ||
438 | + $c = $layer->getclass(0); | ||
439 | + $s = $c->getsymbol(0); | ||
440 | + $s->set("symbol","ponto"); | ||
441 | + $mapa->save ( $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map" ); | ||
442 | + \admin\php\funcoesAdmin\removeCabecalhoMapfile ( $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map" ); | ||
443 | + echo "<div class='alert alert-success' role='alert'>Mapfile " . $_POST ["i3GEOuploadNomeTabela"] . " criado!!!</div>"; | ||
444 | + } else { | ||
445 | + echo "<div class='alert alert-danger' role='alert'>Mapfile não pode ser criado criado!!!</div>"; | ||
446 | + } | ||
447 | + } | ||
448 | + } | ||
449 | + echo "<div class='alert alert-success' role='alert'>Pode fechar essa janela.</div>"; | ||
450 | +} else { | ||
451 | + echo "<div class='alert alert-danger' role='alert'>Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</div>"; | ||
452 | +} | ||
453 | +if (file_exists ( $_SESSION ["locaplic"] . "/temas/" . $_POST ["i3GEOuploadNomeTabela"] . ".map" )) { | ||
454 | + echo "<div class='alert alert-info' role='alert'><a href='#' onclick=\"abreEditor('" . $_POST ["i3GEOuploadNomeTabela"] . "')\" class='alert-link'>Editar mapfile</a></div>"; | ||
455 | +} | ||
456 | +function verificaNome($nome) { | ||
457 | + if (strlen ( basename ( $nome ) ) > 200) { | ||
458 | + exit (); | ||
459 | + } | ||
460 | + $nome = strtolower ( $nome ); | ||
461 | + $lista = explode ( ".", $nome ); | ||
462 | + $extensao = $lista [count ( $lista ) - 1]; | ||
463 | + if (($extensao != "csv")) { | ||
464 | + echo "Nome de arquivo inválido. $nome"; | ||
465 | + exit (); | ||
466 | + } | ||
467 | +} | ||
468 | +?> | ||
469 | +<script> | ||
470 | +function abreEditor (codigo){ | ||
471 | + window.parent.location.href = "../../catalogo/mapfile/opcoes/index.php?codigo=" + codigo + "&id_tema"; | ||
472 | +} | ||
473 | +</script> | ||
474 | + | ||
475 | +</body> | ||
476 | +</html> |
@@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
1 | +/* | ||
2 | +Licenca: | ||
3 | + | ||
4 | +GPL2 | ||
5 | + | ||
6 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
7 | + | ||
8 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
9 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
10 | + | ||
11 | +Este programa é software livre; você pode redistribuí-lo | ||
12 | +e/ou modificá-lo sob os termos da Licença Pública Geral | ||
13 | +GNU conforme publicada pela Free Software Foundation; | ||
14 | + | ||
15 | +Este programa é distribuído na expectativa de que seja útil, | ||
16 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
17 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
18 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
19 | +Você deve ter recebido uma cópia da Licença Pública Geral do | ||
20 | +GNU junto com este programa; se não, escreva para a | ||
21 | +Free Software Foundation, Inc., no endereço | ||
22 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
23 | + | ||
24 | + */ | ||
25 | +i3GEOadmin.csv2pg = {}; | ||
0 | \ No newline at end of file | 26 | \ No newline at end of file |
@@ -0,0 +1,253 @@ | @@ -0,0 +1,253 @@ | ||
1 | +<?php | ||
2 | +define ( "ONDEI3GEO", "../../.." ); | ||
3 | +include ("exec.php"); | ||
4 | +include "../../head.php"; | ||
5 | +// monta o combo com a lista de pastas para armazenar os arquivos | ||
6 | +$comboEsquemas = '<select name="i3GEOuploadEsquemaDestino" class="form-control" required ><option value=""></option>'; | ||
7 | +if (!empty ( $_SESSION ["i3geoUploadDataWL"] )) { | ||
8 | + foreach ( $_SESSION ["i3geoUploadDataWL"]["postgis"]["esquemas"] as $c ) { | ||
9 | + $comboEsquemas .= "<option value='$c'>$c</option>"; | ||
10 | + } | ||
11 | +} | ||
12 | +$comboEsquemas .= "</select>"; | ||
13 | +// monta o combo com a lista de alias para conexao com o banco de dados | ||
14 | +$comboAliasConexao = '<select name="i3GEOuploadAliasConexao" class="form-control" ><option value=""></option>'; | ||
15 | +foreach ( array_keys($_SESSION ["postgis_mapa"]) as $c ) { | ||
16 | + $comboAliasConexao .= "<option value='$c'>$c</option>"; | ||
17 | +} | ||
18 | +$comboAliasConexao .= "</select>"; | ||
19 | +?> | ||
20 | +<div class="container-fluid migalha"> | ||
21 | + <div class="row"> | ||
22 | + <div class="btn-group btn-breadcrumb"> | ||
23 | + <a class="btn btn-default" href="../../../init/index.php"> | ||
24 | + <span>i3Geo</span> | ||
25 | + </a> | ||
26 | + <a class="btn btn-default" href="../../index.php"> | ||
27 | + <span>Admin</span> | ||
28 | + </a> | ||
29 | + <a class="btn btn-default" style="pointer-events: none"> | ||
30 | + <span>Upload</span> | ||
31 | + </a> | ||
32 | + <a class="btn btn-default" style="pointer-events: none"> | ||
33 | + <span>CSV->Postgis</span> | ||
34 | + </a> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | +</div> | ||
38 | +<div class="container"> | ||
39 | + <div class="row center-block"> | ||
40 | + <div class="col-md-12"> | ||
41 | + <div class="well hidden" id="titulo"> | ||
42 | + <button data-toggle="modal" data-target="#ajudaPrincipal" class="btn btn-primary btn-fab btn-fab-mini pull-right"> | ||
43 | + <i class="material-icons">help</i> | ||
44 | + </button> | ||
45 | + <h2> | ||
46 | + <small>{{{txtTituloCsv2Pg}}}</small> | ||
47 | + </h2> | ||
48 | + <blockquote>{{{txtDescCsv2Pg}}}</blockquote> | ||
49 | + <!--Modal ajuda--> | ||
50 | + <div id="ajudaPrincipal" class="modal fade" tabindex="-1"> | ||
51 | + <div class="modal-dialog"> | ||
52 | + <div class="modal-content"> | ||
53 | + <div class="modal-body"> | ||
54 | + <p>{{{txtAjudaCsv2Pg}}}</p> | ||
55 | + </div> | ||
56 | + </div> | ||
57 | + </div> | ||
58 | + </div> | ||
59 | + </div> | ||
60 | + | ||
61 | + <form style="" target="i3GEOuploadiframe" action="exec.php" method="post" ENCTYPE="multipart/form-data" onsubmit="javascript:$('#modalUpload').modal('show');" class="form-horizontal" role="form" | ||
62 | + method="post"> | ||
63 | + <div class="row center-block well hidden" id="corpo"> | ||
64 | + <div class="col-md-12"> | ||
65 | + <div class="form-group form-group-lg"> | ||
66 | + <label class="col-md-5 control-label">{{{txtArquivoCsv}}}</label> | ||
67 | + <div class="col-md-7"> | ||
68 | + <div class="form-group form-group-lg col-md-12"> | ||
69 | + <div class="input-group-btn"> | ||
70 | + <button type="button" class="btn btn-primary pull-left" onclick="$(this).parent().find('input[type=file]').click();">CSV</button> | ||
71 | + <input name="i3GEOuploadcsv" onchange="$(this).parent().parent().find('.form-control').html($(this).val().split(/[\\|/]/).pop());" style="display: none;" type="file"> | ||
72 | + <span class="form-control"></span> | ||
73 | + </div> | ||
74 | + </div> | ||
75 | + </div> | ||
76 | + </div> | ||
77 | + </div> | ||
78 | + <div class="col-md-12"> | ||
79 | + <div class="form-group form-group-lg"> | ||
80 | + <label class="col-md-5 control-label" for="i3GEOuploadEsquemaDestino">{{{esquemaArmazenamento}}}</label> | ||
81 | + <div class="col-md-7"> | ||
82 | + <?php echo $comboEsquemas; ?> | ||
83 | + </div> | ||
84 | + </div> | ||
85 | + <div class="form-group form-group-lg"> | ||
86 | + <label class="col-md-5 control-label" for="i3GEOuploadNomeTabela">{{{nomeTabela}}}</label> | ||
87 | + <div class="col-md-7"> | ||
88 | + <input type="text" value="" class="form-control" name="i3GEOuploadNomeTabela" required> | ||
89 | + <div class="input-group-btn"> | ||
90 | + <a role="button" class="btn btn-danger btn-fab btn-fab-mini" style="height: 20px; min-width: 20px; width: 20px;" onclick="listaTabelasUpload('i3GEOuploadNomeTabela')" href="javascript:void(0)"> | ||
91 | + <i class="material-icons md-18">list</i> | ||
92 | + </a> | ||
93 | + </div> | ||
94 | + </div> | ||
95 | + </div> | ||
96 | + <div class="form-group form-group-lg"> | ||
97 | + <label class="col-md-5 control-label" for="i3GEOuploadSridOrigem">{{{sridOrigemCsv}}}</label> | ||
98 | + <div class="col-md-7"> | ||
99 | + <input type="text" value="<?php echo $_SESSION["i3GeoProjDefault"]["epsg"]; ?>" class="form-control" name="i3GEOuploadSridOrigem" > | ||
100 | + </div> | ||
101 | + </div> | ||
102 | + <div class="form-group form-group-lg"> | ||
103 | + <label class="col-md-5 control-label" for="i3GEOuploadSridDestino">{{{sridDestino}}}</label> | ||
104 | + <div class="col-md-7"> | ||
105 | + <input type="text" value="<?php echo $_SESSION["i3GeoProjDefault"]["epsg"]; ?>" class="form-control" name="i3GEOuploadSridDestino" > | ||
106 | + </div> | ||
107 | + </div> | ||
108 | + <div class="form-group form-group-lg"> | ||
109 | + <label class="col-md-5 control-label" for="i3GEOuploadColunaX">{{{colunaX}}}</label> | ||
110 | + <div class="col-md-7"> | ||
111 | + <input type="text" value="" class="form-control" name="i3GEOuploadColunaX"> | ||
112 | + </div> | ||
113 | + </div> | ||
114 | + <div class="form-group form-group-lg"> | ||
115 | + <label class="col-md-5 control-label" for="i3GEOuploadColunaY">{{{colunaY}}}</label> | ||
116 | + <div class="col-md-7"> | ||
117 | + <input type="text" value="" class="form-control" name="i3GEOuploadColunaY"> | ||
118 | + </div> | ||
119 | + </div> | ||
120 | + <div class="form-group form-group-lg"> | ||
121 | + <label class="col-md-5 control-label" for="i3GEOuploadComentario">{{{comentarioTabela}}}</label> | ||
122 | + <div class="col-md-7"> | ||
123 | + <input type="text" value="" class="form-control" name="i3GEOuploadComentario"> | ||
124 | + </div> | ||
125 | + </div> | ||
126 | + <div class="form-group form-group-lg"> | ||
127 | + <label class="col-md-5 control-label" for="i3GEOuploadTipoOperacao">{{{tipoOperacao}}}</label> | ||
128 | + <div class="col-md-7"> | ||
129 | + <select title="{{{tipoOperacao}}}" name="i3GEOuploadTipoOperacao" class="form-control"> | ||
130 | + <option value="criar">{{{tabelaNova}}}</option> | ||
131 | + <option value="inserir">{{{tabelaInsert}}}</option> | ||
132 | + <option value="atualizar">{{{tabelaUpdate}}}</option> | ||
133 | + </select> | ||
134 | + </div> | ||
135 | + </div> | ||
136 | + <div class="form-group form-group-lg"> | ||
137 | + <label class="col-md-5 control-label" style="margin-top: 0px;" for="i3GEOuploadColunaGid">{{{colunaGid}}}</label> | ||
138 | + <div class="col-md-7"> | ||
139 | + <input type="text" value="" class="form-control" name="i3GEOuploadColunaGid" required > | ||
140 | + </div> | ||
141 | + </div> | ||
142 | + <div class="form-group form-group-lg"> | ||
143 | + <label class="col-md-5 control-label" for="i3GEOuploadAliasConexao">{{{comboAliasConexao}}}</label> | ||
144 | + <div class="col-md-7"> | ||
145 | + <?php echo $comboAliasConexao; ?> | ||
146 | + </div> | ||
147 | + </div> | ||
148 | + <div class="form-group form-group-lg"> | ||
149 | + <label class="col-md-5 control-label" style="margin-top: 0px;" for="i3GEOuploadApenasScript">{{{apenasScript}}}</label> | ||
150 | + <div class="col-md-7"> | ||
151 | + <div class=" checkbox"> | ||
152 | + <label> <input title="{{{apenasScript}}}" name="i3GEOuploadApenasScript" type="checkbox"> | ||
153 | + </label> | ||
154 | + </div> | ||
155 | + </div> | ||
156 | + </div> | ||
157 | + <div class="form-group form-group-lg"> | ||
158 | + <label class="col-md-5 control-label" style="margin-top: 0px;" for="i3GEOuploadCriaMapfile">{{{criaMapfile}}}</label> | ||
159 | + <div class="col-md-7"> | ||
160 | + <div class=" checkbox"> | ||
161 | + <label> <input title="{{{criaMapfile}}}" name="i3GEOuploadCriaMapfile" type="checkbox"> | ||
162 | + </label> | ||
163 | + </div> | ||
164 | + </div> | ||
165 | + </div> | ||
166 | + <div class="col-md-12"> | ||
167 | + <div class="pull-right"> | ||
168 | + <button type="submit" class="btn btn-primary" role="button" style="color: #008579;">{{envia}}</button> | ||
169 | + </div> | ||
170 | + </div> | ||
171 | + </div> | ||
172 | + </div> | ||
173 | + </form> | ||
174 | + </div> | ||
175 | + <div id="modalUpload" class="modal fade" tabindex="-1"> | ||
176 | + <div class="modal-dialog modal-lg"> | ||
177 | + <div class="modal-content"> | ||
178 | + <div class="modal-header"> | ||
179 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | ||
180 | + <span aria-hidden="true">×</span> | ||
181 | + </button> | ||
182 | + </div> | ||
183 | + <div class="modal-content"> | ||
184 | + <div class="modal-body modal-lg"> | ||
185 | + <iframe name=i3GEOuploadiframe style="text-align: left; border: 0px solid gray;" width="100%" height="500px"></iframe> | ||
186 | + </div> | ||
187 | + </div> | ||
188 | + </div> | ||
189 | + </div> | ||
190 | + </div> | ||
191 | + </div> | ||
192 | +</div> | ||
193 | +<script id="templateProj" type="x-tmpl-mustache"> | ||
194 | + <option value="{{{codigo}}}">{{{nome}}}</option> | ||
195 | +</script> | ||
196 | +<?php | ||
197 | +if (empty ( $_SESSION ["i3geoUploadDataWL"] )) { | ||
198 | + echo "<script>iniciaMenuPrincipal();i3GEOadmin.core.mostraErro('Nenhum esquema cadastrado para armazenar a tabela nas configurações do i3Geo (ms_configura)');</script>"; | ||
199 | + exit (); | ||
200 | +} | ||
201 | +?> | ||
202 | +<script type="text/javascript" src="index.js"></script> | ||
203 | +<script type="text/javascript" src="../../dicionario/uploadshp.js"></script> | ||
204 | +<script type="text/javascript" src="../../js/bdexplorer.js"></script> | ||
205 | +<script> | ||
206 | + $(document).ready(function(){ | ||
207 | + //vem de admin1/index.js | ||
208 | + iniciaMenuPrincipal(); | ||
209 | + $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { | ||
210 | + event.preventDefault(); | ||
211 | + event.stopPropagation(); | ||
212 | + $(this).parent().siblings().removeClass('open'); | ||
213 | + $(this).parent().toggleClass('open'); | ||
214 | + }); | ||
215 | + //traducao | ||
216 | + var t = $("#titulo"); | ||
217 | + //complementa dicionario | ||
218 | + i3GEOadmin.csv2pg.dicionario = $.extend( | ||
219 | + {}, | ||
220 | + i3GEOadmin.uploadshp.dicionario, | ||
221 | + i3GEOadmin.core.dicionario | ||
222 | + ); | ||
223 | + | ||
224 | + i3GEOadmin.core.dicionario = null; | ||
225 | + | ||
226 | + i3GEOadmin.csv2pg.dicionario = i3GEO.idioma.objetoIdioma(i3GEOadmin.csv2pg.dicionario); | ||
227 | + | ||
228 | + t.html( | ||
229 | + Mustache.to_html( | ||
230 | + t.html(), | ||
231 | + i3GEOadmin.csv2pg.dicionario | ||
232 | + ) | ||
233 | + ); | ||
234 | + $.material.init(); | ||
235 | + i3GEOadmin.core.loginOn(); | ||
236 | + $(".hidden").removeClass('hidden'); | ||
237 | + var t = $("#corpo"); | ||
238 | + t.html( | ||
239 | + Mustache.to_html( | ||
240 | + t.html(), | ||
241 | + i3GEOadmin.csv2pg.dicionario | ||
242 | + ) | ||
243 | + ); | ||
244 | + }); | ||
245 | + function listaTabelasUpload(destino){ | ||
246 | + var esquema = $("form select[name='i3GEOuploadEsquemaDestino']").val(); | ||
247 | + if(esquema != ""){ | ||
248 | + i3GEOadmin.bdExplorer.listaTabelasUpload(esquema,destino); | ||
249 | + } | ||
250 | + } | ||
251 | +</script> | ||
252 | +</body> | ||
253 | +</html> | ||
0 | \ No newline at end of file | 254 | \ No newline at end of file |
admin1/upload/shp2pg/exec.php
@@ -130,7 +130,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -130,7 +130,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
130 | $shapefileObj = ms_newShapefileObj($_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".shp",-1); | 130 | $shapefileObj = ms_newShapefileObj($_SESSION ["dir_tmp"] . "/" . $nomePrefixo . ".shp",-1); |
131 | $numshapes = $shapefileObj->numshapes; | 131 | $numshapes = $shapefileObj->numshapes; |
132 | 132 | ||
133 | - echo "<div class='alert alert-info' role='alert'>Numshapes existentes no SHP: " . $numshapes . "</div>"; | 133 | + echo "<div class='alert alert-success' role='alert'>Numshapes existentes no SHP: " . $numshapes . "</div>"; |
134 | ob_flush ();flush (); sleep ( 2 ); | 134 | ob_flush ();flush (); sleep ( 2 ); |
135 | 135 | ||
136 | $mapObj = ms_newMapObjFromString("MAP END"); | 136 | $mapObj = ms_newMapObjFromString("MAP END"); |
@@ -148,8 +148,8 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -148,8 +148,8 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | - echo "<div class='alert alert-info' role='alert'>Tipo do SHP: " . $shapefileObj->type . "</div>"; | ||
152 | - echo "<div class='alert alert-info' role='alert'>Colunas: <p><pre>"; | 151 | + echo "<div class='alert alert-success' role='alert'>Tipo do SHP: " . $shapefileObj->type . "</div>"; |
152 | + echo "<div class='alert alert-success' role='alert'>Colunas: <p><pre>"; | ||
153 | print_r( $colunas ); | 153 | print_r( $colunas ); |
154 | echo "</pre></p></div>"; | 154 | echo "</pre></p></div>"; |
155 | 155 | ||
@@ -173,7 +173,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -173,7 +173,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
173 | } | 173 | } |
174 | $tipoColuna[$coluna] = $tipo; | 174 | $tipoColuna[$coluna] = $tipo; |
175 | } | 175 | } |
176 | - echo "<div class='alert alert-info' role='alert'>Tipos das colunas: <p><pre>"; | 176 | + echo "<div class='alert alert-success' role='alert'>Tipos das colunas: <p><pre>"; |
177 | print_r( $tipoColuna ); | 177 | print_r( $tipoColuna ); |
178 | echo "</pre></p></div>"; | 178 | echo "</pre></p></div>"; |
179 | 179 | ||
@@ -248,7 +248,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -248,7 +248,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
248 | //gera o script para inserir os dados | 248 | //gera o script para inserir os dados |
249 | $linhas = array(); | 249 | $linhas = array(); |
250 | $insert = "INSERT INTO ".$_POST["i3GEOuploadEsquemaDestino"].".".$_POST["i3GEOuploadNomeTabela"]." (".strtolower(\admin\php\funcoesAdmin\removeAcentos(implode(",",$colunas))).",the_geom)"; | 250 | $insert = "INSERT INTO ".$_POST["i3GEOuploadEsquemaDestino"].".".$_POST["i3GEOuploadNomeTabela"]." (".strtolower(\admin\php\funcoesAdmin\removeAcentos(implode(",",$colunas))).",the_geom)"; |
251 | - echo "<div class='alert alert-success' role='alert'>Preparando inclusão de dados...</div>"; | 251 | + echo "<div class='alert alert-info' role='alert'>Preparando inclusão de dados...</div>"; |
252 | ob_flush(); | 252 | ob_flush(); |
253 | flush(); | 253 | flush(); |
254 | sleep(1); | 254 | sleep(1); |
@@ -314,9 +314,9 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -314,9 +314,9 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
314 | } | 314 | } |
315 | 315 | ||
316 | if($_POST["i3GEOuploadApenasScript"] == "on"){ | 316 | if($_POST["i3GEOuploadApenasScript"] == "on"){ |
317 | - echo "<div class='alert alert-info' role='alert'>Sql de inserção de dados: <p><pre>"; | 317 | + echo "<div class='alert alert-success' role='alert'>Sql de inserção de dados: <p><pre>"; |
318 | foreach($linhas as $linha){ | 318 | foreach($linhas as $linha){ |
319 | - print_r( $linha )."/n"; | 319 | + echo( $linha )."\n"; |
320 | } | 320 | } |
321 | echo "</pre></p></div>"; | 321 | echo "</pre></p></div>"; |
322 | 322 | ||
@@ -337,9 +337,10 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -337,9 +337,10 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
337 | //para testar com acentuacao diferente | 337 | //para testar com acentuacao diferente |
338 | $conexao = $_SESSION["i3geoUploadDataWL"]["postgis"]["conexao"]; | 338 | $conexao = $_SESSION["i3geoUploadDataWL"]["postgis"]["conexao"]; |
339 | $bdcon = pg_connect('dbname='.$conexao["dbname"].' user='.$conexao["user"].' password='.$conexao["password"].' host='.$conexao["host"].' port='.$conexao["port"]."options='-c client_encoding=LATIN1'"); | 339 | $bdcon = pg_connect('dbname='.$conexao["dbname"].' user='.$conexao["user"].' password='.$conexao["password"].' host='.$conexao["host"].' port='.$conexao["port"]."options='-c client_encoding=LATIN1'"); |
340 | + echo "<div class='alert alert-success' role='alert'>Sql de inserção de dados com erros ou modificados: <p><pre>"; | ||
341 | + | ||
340 | foreach($linhas as $linha){ | 342 | foreach($linhas as $linha){ |
341 | try { | 343 | try { |
342 | - echo "<div class='alert alert-info' role='alert'>Sql de inserção de dados com erros ou modificados: <p><pre>"; | ||
343 | $res = $dbh->query($linha); | 344 | $res = $dbh->query($linha); |
344 | if($res == false){ | 345 | if($res == false){ |
345 | $res = pg_query($bdcon,$linha); | 346 | $res = pg_query($bdcon,$linha); |
@@ -357,11 +358,12 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -357,11 +358,12 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
357 | } | 358 | } |
358 | } | 359 | } |
359 | } | 360 | } |
360 | - echo "</pre></p></div>"; | ||
361 | } catch (PDOException $e) { | 361 | } catch (PDOException $e) { |
362 | echo "<div class='alert alert-danger' role='alert'>Não foi possível executar os SQLs<p><pre>"; | 362 | echo "<div class='alert alert-danger' role='alert'>Não foi possível executar os SQLs<p><pre>"; |
363 | } | 363 | } |
364 | } | 364 | } |
365 | + echo "</pre></p></div>"; | ||
366 | + | ||
365 | $sql = "select * from ".$_POST["i3GEOuploadEsquemaDestino"].".".$_POST["i3GEOuploadNomeTabela"]; | 367 | $sql = "select * from ".$_POST["i3GEOuploadEsquemaDestino"].".".$_POST["i3GEOuploadNomeTabela"]; |
366 | $q = $dbh->query($sql,PDO::FETCH_ASSOC); | 368 | $q = $dbh->query($sql,PDO::FETCH_ASSOC); |
367 | $r = $q->fetchAll(); | 369 | $r = $q->fetchAll(); |
@@ -386,7 +388,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -386,7 +388,7 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
386 | if(!in_array($_POST["i3GEOuploadAliasConexao"],array_keys($_SESSION ["postgis_mapa"]))){ | 388 | if(!in_array($_POST["i3GEOuploadAliasConexao"],array_keys($_SESSION ["postgis_mapa"]))){ |
387 | echo "<div class='alert alert-danger' role='alert'>Alias para a conexão com o banco não definida</div>"; | 389 | echo "<div class='alert alert-danger' role='alert'>Alias para a conexão com o banco não definida</div>"; |
388 | } else { | 390 | } else { |
389 | - echo "<div class='alert alert-success' role='alert'>Criando mapfile...</div>"; | 391 | + echo "<div class='alert alert-info' role='alert'>Criando mapfile...</div>"; |
390 | ob_flush ();flush (); sleep ( 2 ); | 392 | ob_flush ();flush (); sleep ( 2 ); |
391 | 393 | ||
392 | if ($shapefileObj->type == 1) { | 394 | if ($shapefileObj->type == 1) { |
@@ -408,13 +410,14 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | @@ -408,13 +410,14 @@ if (isset ( $_FILES ['i3GEOuploadshp'] ['name'] )) { | ||
408 | $layer->setconnectiontype(6); | 410 | $layer->setconnectiontype(6); |
409 | $layer->set ( "type", $tipoLayer ); | 411 | $layer->set ( "type", $tipoLayer ); |
410 | $mapa->save ( $_SESSION ["locaplic"] . "/temas/" . $_POST["i3GEOuploadNomeTabela"] . ".map" ); | 412 | $mapa->save ( $_SESSION ["locaplic"] . "/temas/" . $_POST["i3GEOuploadNomeTabela"] . ".map" ); |
413 | + \admin\php\funcoesAdmin\removeCabecalhoMapfile ( $_SESSION ["locaplic"] . "/temas/" . $_POST["i3GEOuploadNomeTabela"] . ".map" ); | ||
411 | echo "<div class='alert alert-success' role='alert'>Mapfile " . $_POST["i3GEOuploadNomeTabela"] ." criado!!!</div>"; | 414 | echo "<div class='alert alert-success' role='alert'>Mapfile " . $_POST["i3GEOuploadNomeTabela"] ." criado!!!</div>"; |
412 | } else { | 415 | } else { |
413 | echo "<div class='alert alert-danger' role='alert'>Mapfile não pode ser criado criado!!!</div>"; | 416 | echo "<div class='alert alert-danger' role='alert'>Mapfile não pode ser criado criado!!!</div>"; |
414 | } | 417 | } |
415 | } | 418 | } |
416 | } | 419 | } |
417 | - echo "<div class='alert alert-success' role='alert'>Pode fechar essa janela.</div>"; | 420 | + echo "<div class='alert alert-info' role='alert'>Pode fechar essa janela.</div>"; |
418 | } else { | 421 | } else { |
419 | echo "<div class='alert alert-danger' role='alert'>Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</div>"; | 422 | echo "<div class='alert alert-danger' role='alert'>Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</div>"; |
420 | } | 423 | } |
admin1/upload/shp2pg/index.php
@@ -3,9 +3,12 @@ define ( "ONDEI3GEO", "../../.." ); | @@ -3,9 +3,12 @@ define ( "ONDEI3GEO", "../../.." ); | ||
3 | include ("exec.php"); | 3 | include ("exec.php"); |
4 | include "../../head.php"; | 4 | include "../../head.php"; |
5 | // monta o combo com a lista de pastas para armazenar os arquivos | 5 | // monta o combo com a lista de pastas para armazenar os arquivos |
6 | + | ||
6 | $comboEsquemas = '<select name="i3GEOuploadEsquemaDestino" class="form-control" required ><option value=""></option>'; | 7 | $comboEsquemas = '<select name="i3GEOuploadEsquemaDestino" class="form-control" required ><option value=""></option>'; |
7 | -foreach ( $_SESSION ["i3geoUploadDataWL"]["postgis"]["esquemas"] as $c ) { | ||
8 | - $comboEsquemas .= "<option value='$c'>$c</option>"; | 8 | +if (!empty ( $_SESSION ["i3geoUploadDataWL"] )) { |
9 | + foreach ( $_SESSION ["i3geoUploadDataWL"]["postgis"]["esquemas"] as $c ) { | ||
10 | + $comboEsquemas .= "<option value='$c'>$c</option>"; | ||
11 | + } | ||
9 | } | 12 | } |
10 | $comboEsquemas .= "</select>"; | 13 | $comboEsquemas .= "</select>"; |
11 | // monta o combo com a lista de alias para conexao com o banco de dados | 14 | // monta o combo com a lista de alias para conexao com o banco de dados |
@@ -194,7 +197,7 @@ $comboAliasConexao .= "</select>"; | @@ -194,7 +197,7 @@ $comboAliasConexao .= "</select>"; | ||
194 | <option value="{{{codigo}}}">{{{nome}}}</option> | 197 | <option value="{{{codigo}}}">{{{nome}}}</option> |
195 | </script> | 198 | </script> |
196 | <?php | 199 | <?php |
197 | -if (empty ( $_SESSION ["i3geoEsquemasWL"] )) { | 200 | +if (empty ( $_SESSION ["i3geoUploadDataWL"] )) { |
198 | echo "<script>iniciaMenuPrincipal();i3GEOadmin.core.mostraErro('Nenhum esquema cadastrado para armazenar a tabela nas configurações do i3Geo (ms_configura)');</script>"; | 201 | echo "<script>iniciaMenuPrincipal();i3GEOadmin.core.mostraErro('Nenhum esquema cadastrado para armazenar a tabela nas configurações do i3Geo (ms_configura)');</script>"; |
199 | exit (); | 202 | exit (); |
200 | } | 203 | } |
ms_configura.php
@@ -160,7 +160,7 @@ $i3geoEsquemasWL = array("publicy"); | @@ -160,7 +160,7 @@ $i3geoEsquemasWL = array("publicy"); | ||
160 | Tipo: | 160 | Tipo: |
161 | {array} | 161 | {array} |
162 | */ | 162 | */ |
163 | - $i3geoUploadDataWL = array(); | 163 | + $i3geoUploadDataWL = array(); |
164 | 164 | ||
165 | //TODO documentar moodle | 165 | //TODO documentar moodle |
166 | /* | 166 | /* |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +MAP | ||
2 | +SYMBOLSET ../symbols/simbolosv6.sym | ||
3 | +FONTSET "../symbols/fontes.txt" | ||
4 | +LAYER | ||
5 | + NAME "testecsv" | ||
6 | + TEMPLATE "none.htm" | ||
7 | + TYPE line | ||
8 | + DATA "" | ||
9 | + CONNECTION "" | ||
10 | + STATUS DEFAULT | ||
11 | + METADATA | ||
12 | + TEMA "testecsv" | ||
13 | + CLASSE "SIM" | ||
14 | + permiteogc "SIM" | ||
15 | + permitedownload "SIM" | ||
16 | + permitekml "SIM" | ||
17 | + permitekmz "SIM" | ||
18 | + END | ||
19 | + CLASS | ||
20 | + NAME "" | ||
21 | + STYLE | ||
22 | + COLOR 0 0 0 | ||
23 | + SIZE 12 | ||
24 | + END | ||
25 | + END | ||
26 | +END | ||
27 | +END |