Commit 246213ee4dc695379342a168161bd49a6ae66fc5

Authored by Edmar Moretti
1 parent b871ac88

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

admin/admin.db
No preview for this file type
admin/html/subirshapefile.html
... ... @@ -16,7 +16,7 @@ body {
16 16 </style>
17 17 <script type="text/javascript" src="../js/core.js"></script>
18 18 <script type="text/javascript" src="../../classesjs/i3geo.js"></script>
19   -<script type="text/javascript" src="../../ferramentas/upload/index.js"></script>
  19 +<script type="text/javascript" src="../js/subirshapefile.js"></script>
20 20 <script type="text/javascript" src="../../ferramentas/upload/dicionario.js"></script>
21 21 <script type="text/javascript" src="../dicionario/core.js"></script>
22 22 <link rel="stylesheet" type="text/css" href="admin.css">
... ...
admin/html/subirsimbolo_.html
... ... @@ -1,80 +0,0 @@
1   -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2   -<html>
3   -<head>
4   -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
5   -<title>Shape file</title>
6   -<style type="text/css">
7   -/*margin and padding on body element
8   - can introduce errors in determining
9   - element position and are not recommended;
10   - we turn them off as a foundation for YUI
11   - CSS treatments. */
12   -body {
13   - margin: 0;
14   - padding: 0;
15   -}
16   -</style>
17   -<script type="text/javascript" src="../js/core_.js"></script>
18   -<script type="text/javascript" src="../../classesjs/i3geo.js"></script>
19   -<script type="text/javascript" src="../../ferramentas/uploadsimbolo/index.js"></script>
20   -<script type="text/javascript" src="../../ferramentas/uploadsimbolo/dicionario.js"></script>
21   -
22   -<script type="text/javascript" src="../dicionario/core.js"></script>
23   -<link rel="stylesheet" type="text/css" href="admin.css">
24   -</head>
25   -<body class=" yui-skin-sam fundoPonto" style="background-color: white; margin-top: 20px;">
26   - <center>
27   - <div class="mascaraPrincipal" id="divGeral">
28   - <div id="formulario" style="display: none">
29   - <div id="conteudo" style="width: 500px"></div>
30   - </div>
31   - </div>
32   - <br> <br> <br> <br> <br> <br> <br>
33   - <br> <br> <br> <br> <br> <br> <br>
34   - <br> <br> <br> <br> <br> <br> <br>
35   - </center>
36   - <script>
37   -/*
38   -Title: Subir simbolo
39   -
40   -Envia um arquivo de imagem para o servidor
41   -
42   -Licenca:
43   -
44   -GPL2
45   -
46   -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
47   -
48   -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
49   -Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
50   -
51   -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
52   -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
53   -GNU conforme publicada pela Free Software Foundation;
54   -
55   -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
56   -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
57   -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
58   -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
59   -Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
60   -GNU junto com este programa; se n&atilde;o, escreva para a
61   -Free Software Foundation, Inc., no endere&ccedil;o
62   -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
63   -
64   -Arquivo:
65   -
66   -i3geo/admin/html/subirsimbolo.html
67   -*/
68   -i3GEO.configura = {
69   - locaplic : "../.."
70   -};
71   -i3GEO.parametros.editor = "sim";
72   -i3GEO.configura.sid = "";
73   -cabecalhoGeral("cabecalhoPrincipal","");
74   -temp = function(){
75   - document.getElementById("formulario").style.display = "block";
76   - i3GEOF.uploadsimbolo.inicia("conteudo");
77   -};
78   -i3GEO.login.verificaOperacao("admin/html/subirshapefile",i3GEO.configura.locaplic,temp,"sessao",i3GEO.login.dialogo.abreLogin);
79   -</script>
80   -</body>
admin/js/subirshapefile.js 0 → 100755
... ... @@ -0,0 +1,203 @@
  1 +//Esse programa e um clone de i3geo/ferramentas/upload/index.js
  2 +//
  3 +
  4 +/*
  5 +
  6 +
  7 +Title: Upload de arquivo shapefile
  8 +
  9 +Envia para o servidor um arquivo shapefile local e insere como uma camada no mapa.
  10 +
  11 +Veja:
  12 +
  13 +<i3GEO.arvoreDeTemas.dialogo.upload>
  14 +
  15 +Arquivo: i3geo/ferramentas/upload/index.js.php
  16 +
  17 +About: Licen&ccedil;a
  18 +
  19 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  20 +
  21 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  22 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  23 +
  24 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  25 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  26 +GNU conforme publicada pela Free Software Foundation;
  27 +
  28 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  29 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  30 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  31 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  32 +Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
  33 +GNU junto com este programa; se n&atilde;o, escreva para a
  34 +Free Software Foundation, Inc., no endere&ccedil;o
  35 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  36 +*/
  37 +if(typeof(i3GEOF) === 'undefined'){
  38 + var i3GEOF = {};
  39 +}
  40 +/*
  41 +Classe: i3GEOF.upload
  42 +*/
  43 +i3GEOF.upload = {
  44 + /*
  45 + Variavel: aguarde
  46 +
  47 + Estilo do objeto DOM com a imagem de aguarde existente no cabe&ccedil;alho da janela.
  48 + */
  49 + aguarde: "",
  50 + /*
  51 + Para efeitos de compatibilidade antes da vers&atilde;o 4.7 que n&atilde;o tinha dicion&aacute;rio
  52 + */
  53 + criaJanelaFlutuante: function(){
  54 + i3GEOF.upload.iniciaDicionario();
  55 + },
  56 + /*
  57 + Function: iniciaDicionario
  58 +
  59 + Carrega o dicion&aacute;rio e chama a fun&ccedil;&atilde;o que inicia a ferramenta
  60 +
  61 + O Javascript &eacute; carregado com o id i3GEOF.nomedaferramenta.dicionario_script
  62 + */
  63 + iniciaDicionario: function(){
  64 + if(typeof(i3GEOF.upload.dicionario) === 'undefined'){
  65 + i3GEO.util.scriptTag(
  66 + i3GEO.configura.locaplic+"/ferramentas/upload/dicionario.js",
  67 + "i3GEOF.upload.iniciaJanelaFlutuante()",
  68 + "i3GEOF.upload.dicionario_script"
  69 + );
  70 + }
  71 + else{
  72 + i3GEOF.upload.iniciaJanelaFlutuante();
  73 + }
  74 + },
  75 + /*
  76 + Function: inicia
  77 +
  78 + Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
  79 +
  80 + Parametro:
  81 +
  82 + iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
  83 + */
  84 + inicia: function(iddiv){
  85 + try{
  86 + $i(iddiv).innerHTML += i3GEOF.upload.html();
  87 + var b = new YAHOO.widget.Button(
  88 + "i3GEOuploadbotao1",
  89 + {onclick:{fn: i3GEOF.upload.submete}}
  90 + );
  91 + b.addClass("rodar");
  92 + i3GEO.util.radioEpsg(
  93 + function(retorno){
  94 + $i("i3GEOuploadListaepsg").innerHTML = retorno.dados;
  95 + },
  96 + "i3GEOuploadListaepsg",
  97 + "upload",
  98 + "nao"
  99 + );
  100 + }
  101 + catch(erro){i3GEO.janela.tempoMsg(erro);}
  102 + },
  103 + /*
  104 + Function: html
  105 +
  106 + Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
  107 +
  108 + Retorno:
  109 +
  110 + String com o c&oacute;digo html
  111 + */
  112 + html:function(){
  113 + var ins = '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="'+i3GEO.configura.locaplic+'/admin/php/subirshapefile.php" method="post" ENCTYPE="multipart/form-data">' +
  114 + '<fieldset class=subbloco >' +
  115 + '<p class="paragrafo" >shp: <br><input type="file" size=22 name="i3GEOuploadshp" style="top:0px;left:0px;cursor:pointer;"></p>' +
  116 + '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' +
  117 + '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>' +
  118 + '<p class="paragrafo" >prj (opcional): <br><input type="file" size=22 name="i3GEOuploadprj" style="top:0px;left:0px;cursor:pointer;"></p>' +
  119 + '</fieldset>';
  120 + if(i3GEO.parametros.editor === "sim"){
  121 + ins += '<fieldset class=subbloco >' +
  122 + '<p class="paragrafo" >'+$trad('pastaArmazenamento',i3GEOF.upload.dicionario)+':</p>' +
  123 + '<div class="i3geoForm i3geoFormIconeEdita" ><input type="text" name="dirDestino" id="dirDestino" /></div>' +
  124 + "&nbsp;<img onclick='i3GEO.util.navegadorDir(\"dirDestino\",false,false,false,true);' src='"+i3GEO.configura.locaplic+"/imagens/ic_zoom.png' style='cursor:pointer;position :relative;top:2px'/></p>" +
  125 + '<p class="paragrafo" ><input type=checkbox name=i3GEOuploadCriaMapfile id=i3GEOuploadCriaMapfile />&nbsp;'+$trad('criaMapfile',i3GEOF.upload.dicionario) +
  126 + '</fieldset>';
  127 + }
  128 + ins += '<fieldset class=subbloco >' +
  129 + '<p class="paragrafo" >'+$trad('tipoGeom',i3GEOF.upload.dicionario)+': </p>' +
  130 + ' <div class=styled-select >' +
  131 + ' <select id=tipo name=tipo >' +
  132 + ' <option value="">'+$trad('naoConhecido',i3GEOF.upload.dicionario)+'</option>' +
  133 + ' <option value="1">'+$trad('pontual',i3GEOF.upload.dicionario)+'</option>' +
  134 + ' <option value="5">'+$trad('poligonal',i3GEOF.upload.dicionario)+'</option>' +
  135 + ' <option value="3">'+$trad('linear',i3GEOF.upload.dicionario)+'</option>' +
  136 + ' </select>' +
  137 + '</div>' +
  138 + '<br><p class=paragrafo >'+$trad('projecao',i3GEOF.upload.dicionario)+':</p>' +
  139 + '<div id=i3GEOuploadListaepsg width="98%" style="text-align:left;border:1px solid gray;left:0px;overflow:auto;height:60px"></div>' +
  140 + '</fieldset>' +
  141 + '<fieldset class=subbloco >' +
  142 + '<p class="paragrafo" ><input id=i3GEOuploadbotao1 type="button" value="'+$trad('envia',i3GEOF.upload.dicionario)+'" size=12 name="submit">' +
  143 + '<input type=hidden name=g_sid value="'+i3GEO.configura.sid+'" >' +
  144 + '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' +
  145 + '</form>' +
  146 +
  147 + "<p class='paragrafo' style=color:red >"+$trad('ajudaCaracter',i3GEOF.upload.dicionario)+"</p>" +
  148 + '<iframe name=i3GEOuploadiframe style="text-align:left;border:1px solid gray;" width="98%" height="60px"></iframe>' +
  149 + '</fieldset>';
  150 + return ins;
  151 + },
  152 + /*
  153 + Function: iniciaJanelaFlutuante
  154 +
  155 + Cria a janela flutuante para controle da ferramenta.
  156 + */
  157 + iniciaJanelaFlutuante: function(){
  158 + var janela,divid,titulo,cabecalho,minimiza;
  159 + if ($i("i3GEOF.upload")) {
  160 + return;
  161 + }
  162 + cabecalho = function(){};
  163 + minimiza = function(){
  164 + i3GEO.janela.minimiza("i3GEOF.upload");
  165 + };
  166 + titulo = "<span class='i3GEOiconeFerramenta i3GEOiconeUpload'></span>"
  167 + + "<div class='i3GeoTituloJanela'>" + $trad("a2")+"<a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=4&idajuda=27' ><b> </b></a></div>";
  168 + janela = i3GEO.janela.cria(
  169 + "400px",
  170 + "480px",
  171 + "",
  172 + "",
  173 + "",
  174 + titulo,
  175 + "i3GEOF.upload",
  176 + false,
  177 + "hd",
  178 + cabecalho,
  179 + minimiza,
  180 + "",
  181 + true
  182 + );
  183 + divid = janela[2].id;
  184 + $i("i3GEOF.upload_corpo").style.backgroundColor = "white";
  185 + i3GEOF.upload.aguarde = $i("i3GEOF.upload_imagemCabecalho").style;
  186 + i3GEOF.upload.inicia(divid);
  187 + },
  188 + /*
  189 + Function: submete
  190 +
  191 + Submete o arquivo ao servidor
  192 + */
  193 + submete: function(){
  194 + if(i3GEOF.upload.aguarde.visibility==="visible")
  195 + {return;}
  196 + i3GEOF.upload.aguarde.visibility="visible";
  197 + $i("i3GEOuploadf").submit();
  198 + },
  199 + selNavegador: function(onde){
  200 + i3GEO.util.navegadorDir(onde,false,false,false);
  201 + }
  202 +};
  203 +
... ...
admin/php/gruposusuarios.php
... ... @@ -72,6 +72,10 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
72 72 retornaJSON("Vc nao pode realizar essa operacao.");exit;
73 73 }
74 74 }
  75 +
  76 +$id_usuario = $_GET["id_usuario"];
  77 +testaSafeNumerico([$id_usuario]);
  78 +
75 79 switch (strtoupper($funcao))
76 80 {
77 81 case "ALTERARGRUPOS":
... ... @@ -127,9 +131,11 @@ switch (strtoupper($funcao))
127 131 cpjson($retorno);
128 132 function alterarGrupos()
129 133 {
130   - global $id_grupo,$nome,$descricao;
  134 + global $id_grupo;
131 135 try
132 136 {
  137 + $nome = $_GET["nome"];
  138 + $descricao = $_GET["descricao"];
133 139 include(dirname(__FILE__)."/conexao.php");
134 140 if($convUTF){
135 141 $nome = utf8_encode($nome);
... ...
admin/php/subirshapefile.php 0 → 100755
... ... @@ -0,0 +1,248 @@
  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);
  8 +if(isset($_GET["tipo"])){
  9 + $tipo = $_GET["tipo"];
  10 +}
  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"];
  19 +}
  20 +if (ob_get_level() == 0) ob_start();
  21 +?>
  22 +<html>
  23 +<head>
  24 +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  25 +<link rel="stylesheet" type="text/css" href="../../css/input.css" />
  26 +<link rel="stylesheet" type="text/css" href="../../css/geral.css" />
  27 +<script src="../../classesjs/classe_util.js"></script>
  28 +<title></title>
  29 +</head>
  30 +<body bgcolor="white" style="background-color:white;text-align:left;">
  31 +<p>
  32 +<?php
  33 +if (isset($_FILES['i3GEOuploadshp']['name']))
  34 +{
  35 + $dirDestino = $_POST["dirDestino"];
  36 + require_once (dirname(__FILE__)."/../../ms_configura.php");
  37 +
  38 + if(isset($logExec) && $logExec["upload"] == true){
  39 + i3GeoLog("prog: upload filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);
  40 + }
  41 +
  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']);
  63 +
  64 + if($_FILES['i3GEOuploadprj']['name'] != ""){
  65 + verificaNome($_FILES['i3GEOuploadprj']['name']);
  66 + }
  67 +
  68 + //remove acentos
  69 + $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
  70 +
  71 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  72 + $nomePrefixo = strip_tags($nomePrefixo);
  73 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
  74 + $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
  75 +
  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;}
  83 +
  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;}
  88 +
  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;}
  93 +
  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 + }
  101 +
  102 + if(!file_exists($dirmap."/".$nomePrefixo.".shp"))
  103 + {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;}
  104 +
  105 +
  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 + }
  222 +}
  223 +else
  224 +{
  225 + echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
  226 +}
  227 +restauraCon($map_file,$postgis_mapa);
  228 +paraAguarde();
  229 +function paraAguarde(){
  230 + echo "<script>try{window.scrollTo(0,10000);window.parent.i3GEOF.upload.aguarde.visibility='hidden';}catch(e){};</script>";
  231 +}
  232 +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 + }
  245 +}
  246 +?>
  247 +</body>
  248 +</html>
... ...
classesphp/mapa_controle.php
... ... @@ -122,7 +122,7 @@ $interfaceTemp = $interface;
122 122 //TEMA2SLD e usado por datadownload.htm
123 123 //PEGAMAPAS e utilizado em varias funcoes
124 124 //
125   -if ($funcao != "pegaTodosTemas" && $funcao != "download3" && $funcao != "listainterfaces" && $funcao != "pegalistadetemas" && $funcao != "pegalistadeSubgrupos" && $funcao != "procurartemasestrela" && $funcao != "pegalistadegrupos" && $funcao != "pegalistademenus" && $funcao != "criaMapa" && strtoupper($funcao) != "TEMA2SLD" && strtoupper($funcao) != "PEGAMAPAS"){
  125 +if ($funcao != "listaEpsg" && $funcao != "pegaTodosTemas" && $funcao != "download3" && $funcao != "listainterfaces" && $funcao != "pegalistadetemas" && $funcao != "pegalistadeSubgrupos" && $funcao != "procurartemasestrela" && $funcao != "pegalistadegrupos" && $funcao != "pegalistademenus" && $funcao != "criaMapa" && strtoupper($funcao) != "TEMA2SLD" && strtoupper($funcao) != "PEGAMAPAS"){
126 126 session_name("i3GeoPHP");
127 127 if (isset($g_sid) && $g_sid != ""){
128 128 session_id($g_sid);
... ...
ferramentas/upload/index.js
... ... @@ -112,14 +112,6 @@ i3GEOF.upload = {
112 112 '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>' +
113 113 '<p class="paragrafo" >prj (opcional): <br><input type="file" size=22 name="i3GEOuploadprj" style="top:0px;left:0px;cursor:pointer;"></p>' +
114 114 '</fieldset>';
115   - if(i3GEO.parametros.editor === "sim"){
116   - ins += '<fieldset class=subbloco >' +
117   - '<p class="paragrafo" >'+$trad('pastaArmazenamento',i3GEOF.upload.dicionario)+':</p>' +
118   - '<div class="i3geoForm i3geoFormIconeEdita" ><input type="text" name="dirDestino" id="dirDestino" /></div>' +
119   - "&nbsp;<img onclick='i3GEO.util.navegadorDir(\"dirDestino\",false,false,false,true);' src='"+i3GEO.configura.locaplic+"/imagens/ic_zoom.png' style='cursor:pointer;position :relative;top:2px'/></p>" +
120   - '<p class="paragrafo" ><input type=checkbox name=i3GEOuploadCriaMapfile id=i3GEOuploadCriaMapfile />&nbsp;'+$trad('criaMapfile',i3GEOF.upload.dicionario) +
121   - '</fieldset>';
122   - }
123 115 ins += '<fieldset class=subbloco >' +
124 116 '<p class="paragrafo" >'+$trad('tipoGeom',i3GEOF.upload.dicionario)+': </p>' +
125 117 ' <div class=styled-select >' +
... ...
ferramentas/upload/upload.php
... ... @@ -17,6 +17,12 @@ if(isset($_GET[&quot;g_sid&quot;]) &amp;&amp; $_GET[&quot;g_sid&quot;] != &quot;&quot;){
17 17 session_start();
18 18 $map_file = $_SESSION["map_file"];
19 19 }
  20 +else{
  21 + exit;
  22 +}
  23 +if(!file_exists($map_file)){
  24 + exit;
  25 +}
20 26 if (ob_get_level() == 0) ob_start();
21 27 ?>
22 28 <html>
... ... @@ -42,18 +48,10 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
42 48 ob_flush();
43 49 flush();
44 50 sleep(1);
45   - if(isset($map_file)){
46   - $mapa = ms_newMapObj($map_file);
47   - $dirmap = dirname($map_file);
48   - }
49   - if(isset($dirDestino) && $dirDestino != ""){
50   - $dirmap = $dirDestino;
51   - include_once(dirname(__FILE__)."/../../admin/php/login.php");
52   - if(verificaOperacaoSessao("admin/php/editortexto") == false){
53   - echo "Vc nao pode salvar os dados no servidor em uma pasta espec&iacute;fica";exit;
54   - }
55   - if(!file_exists($dirmap))
56   - {echo "<p class='paragrafo' >Pasta n&atilde;o existe no servidor";paraAguarde();exit;}
  51 + $mapa = ms_newMapObj($map_file);
  52 + $dirmap = dirname($map_file);
  53 + if(!file_exists($dirmap)){
  54 + exit;
57 55 }
58 56 //verifica nomes
59 57 verificaNome($_FILES['i3GEOuploadshp']['name']);
... ... @@ -104,6 +102,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
104 102  
105 103 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
106 104 if($checkphp == true){
  105 + echo "Arquivo prj invalido";
107 106 unlink($dirmap."/".$nomePrefixo.".shp");
108 107 unlink($dirmap."/".$nomePrefixo.".dbf");
109 108 unlink($dirmap."/".$nomePrefixo.".shx");
... ... @@ -112,6 +111,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
112 111 }
113 112 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
114 113 if($checkphp == true){
  114 + echo "Arquivo shx invalido";
115 115 unlink($dirmap."/".$nomePrefixo.".shp");
116 116 unlink($dirmap."/".$nomePrefixo.".dbf");
117 117 unlink($dirmap."/".$nomePrefixo.".shx");
... ... @@ -120,6 +120,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
120 120 }
121 121 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
122 122 if($checkphp == true){
  123 + echo "Arquivo dbf invalido";
123 124 unlink($dirmap."/".$nomePrefixo.".shp");
124 125 unlink($dirmap."/".$nomePrefixo.".dbf");
125 126 unlink($dirmap."/".$nomePrefixo.".shx");
... ... @@ -130,91 +131,59 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
130 131 echo "<p class='paragrafo' >Arquivo enviado.</p>";
131 132 echo "<p class='paragrafo'></p>";
132 133 //nesse caso o formulario de upload esta sendo executado de dentro de um mapa interativo, por isso o mapfile ja existe
133   - if(isset($map_file)){
134   - echo "<p class='paragrafo' >Adicionando tema...</p>";
135   - ob_flush();
136   - flush();
137   - sleep(1);
138   - $novolayer = ms_newLayerObj($mapa);
139   - $novolayer->set("data",$dirmap."/".$nomePrefixo.".shp");
140   - $novolayer->set("name",$_FILES['i3GEOuploadshp']['name']);
141   - $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadshp']['name']);
142   - $novolayer->setmetadata("DOWNLOAD","SIM");
143   - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
144   - if(!isset($tipo) || $tipo == "")
145   - {$tipo = $sfileObj->type;}
146   - if ($tipo == 1){$novolayer->set("type",MS_LAYER_POINT);} // ponto
147   - if ($tipo == 3){$novolayer->set("type",MS_LAYER_LINE);}
148   - if ($tipo == 5){$novolayer->set("type",MS_LAYER_POLYGON);}
149   - $novolayer->setmetadata("TEMALOCAL","SIM");
150   - $novolayer->setmetadata("CLASSE","SIM");
151   - $novolayer->setmetadata("TEXTO","NAO");
152   - //if (($tipo != 3) and ($tipo != 8 )){$novolayer->set("type",0);}
153   - $novolayer->setfilter("");
154   - $classe = ms_newClassObj($novolayer);
155   - $classe->set("name","");
156   - $estilo = ms_newStyleObj($classe);
157   - if ($tipo == 1)
158   - {
159   - $estilo->set("symbolname","ponto");
160   - $estilo->set("size",6);
161   - }
162   - $estilo->color->setrgb(200,50,0);
163   - $estilo->outlinecolor->setrgb(0,0,0);
164   - // le os itens
165   - $novolayer->set("status",MS_DEFAULT);
166   - $abriu = $novolayer->open();
167   - $items = $novolayer->getItems();
168   - $fechou = $novolayer->close();
169   - if ($items != "")
170   - {
171   - $its = implode(",",$items);
172   - $novolayer->setmetadata("ITENS",$its);
173   - $novolayer->setmetadata("ITENSDESC",$its);
174   - $novolayer->set("template","none.htm");
175   - }
176   - if(isset($_GET["uploadEPSG"]) && $_GET["uploadEPSG"] != ""){
177   - $novolayer->setProjection("init=epsg:".$_GET["uploadEPSG"]);
178   - }
179   - if(file_exists($dirmap."/".$nomePrefixo.".prj")){
180   - $novolayer->setProjection("AUTO");
181   - }
182   - //$adiciona = ms_newLayerObj($mapa, $novolayer);
183   - $salvo = $mapa->save($map_file);
184   - //grava os templates de cada tema
185   - echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa.";
186   - echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>";
  134 + echo "<p class='paragrafo' >Adicionando tema...</p>";
  135 + ob_flush();
  136 + flush();
  137 + sleep(1);
  138 + $novolayer = ms_newLayerObj($mapa);
  139 + $novolayer->set("data",$dirmap."/".$nomePrefixo.".shp");
  140 + $novolayer->set("name",$_FILES['i3GEOuploadshp']['name']);
  141 + $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadshp']['name']);
  142 + $novolayer->setmetadata("DOWNLOAD","SIM");
  143 + $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
  144 + if(!isset($tipo) || $tipo == "")
  145 + {$tipo = $sfileObj->type;}
  146 + if ($tipo == 1){$novolayer->set("type",MS_LAYER_POINT);} // ponto
  147 + if ($tipo == 3){$novolayer->set("type",MS_LAYER_LINE);}
  148 + if ($tipo == 5){$novolayer->set("type",MS_LAYER_POLYGON);}
  149 + $novolayer->setmetadata("TEMALOCAL","SIM");
  150 + $novolayer->setmetadata("CLASSE","SIM");
  151 + $novolayer->setmetadata("TEXTO","NAO");
  152 + //if (($tipo != 3) and ($tipo != 8 )){$novolayer->set("type",0);}
  153 + $novolayer->setfilter("");
  154 + $classe = ms_newClassObj($novolayer);
  155 + $classe->set("name","");
  156 + $estilo = ms_newStyleObj($classe);
  157 + if ($tipo == 1)
  158 + {
  159 + $estilo->set("symbolname","ponto");
  160 + $estilo->set("size",6);
187 161 }
188   - elseif($i3GEOuploadCriaMapfile == "on"){
189   - //verifica se o usuario marcou a opcao de cria mapfile
190   - //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera
191   - //ser criado e registrado no sistema
192   - $nome = $nomePrefixo;
193   - $codigo = $nomePrefixo;
194   - $it = $nomePrefixo;
195   - $en = $nomePrefixo;
196   - $es = $nomePrefixo;
197   - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
198   - if(!isset($tipo) || $tipo == ""){
199   - $tipo = $sfileObj->type;
200   - }
201   - if ($tipo == 1){
202   - $tipoLayer = "point";
203   - }
204   - if ($tipo == 3){
205   - $tipoLayer = "line";
206   - }
207   - if ($tipo == 5){
208   - $tipoLayer = "polygon";
209   - }
210   - $funcao = "CRIARNOVOMAP";
211   - $output = "retorno";
212   - $data = $dirmap."/".$nomePrefixo.".shp";
213   - include_once($locaplic."/admin/php/editormapfile.php");
214   - echo "<b><p class='paragrafo' >Criado!!!<br>";
215   - echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >editar</a>";
216   - echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";
  162 + $estilo->color->setrgb(200,50,0);
  163 + $estilo->outlinecolor->setrgb(0,0,0);
  164 + // le os itens
  165 + $novolayer->set("status",MS_DEFAULT);
  166 + $abriu = $novolayer->open();
  167 + $items = $novolayer->getItems();
  168 + $fechou = $novolayer->close();
  169 + if ($items != "")
  170 + {
  171 + $its = implode(",",$items);
  172 + $novolayer->setmetadata("ITENS",$its);
  173 + $novolayer->setmetadata("ITENSDESC",$its);
  174 + $novolayer->set("template","none.htm");
  175 + }
  176 + if(isset($_GET["uploadEPSG"]) && $_GET["uploadEPSG"] != ""){
  177 + $novolayer->setProjection("init=epsg:".$_GET["uploadEPSG"]);
  178 + }
  179 + if(file_exists($dirmap."/".$nomePrefixo.".prj")){
  180 + $novolayer->setProjection("AUTO");
217 181 }
  182 + //$adiciona = ms_newLayerObj($mapa, $novolayer);
  183 + $salvo = $mapa->save($map_file);
  184 + //grava os templates de cada tema
  185 + echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa.";
  186 + echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>";
218 187 }
219 188 else
220 189 {
... ...