Carregando o arquivo...
"; ob_flush(); flush(); sleep(1); $mapa = ms_newMapObj($map_file); $dirmap = dirname($map_file); if(!file_exists($dirmap)){ exit; } //verifica nomes verificaNome($_FILES['i3GEOuploadshp']['name']); verificaNome($_FILES['i3GEOuploadshx']['name']); verificaNome($_FILES['i3GEOuploaddbf']['name']); if($_FILES['i3GEOuploadprj']['name'] != ""){ verificaNome($_FILES['i3GEOuploadprj']['name']); } //remove acentos $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name']))); $nomePrefixo = str_replace(".","",$nomePrefixo); $nomePrefixo = strip_tags($nomePrefixo); $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES); $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true)); //sobe arquivo $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name']; if(file_exists($dirmap."/".$nomePrefixo.".shp")) {echo "Já existe um SHP com o nome ";paraAguarde();exit;} $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp"); if($status != 1) {echo "
Ocorreu um erro no envio do arquivo SHP. Pode ser uma limitação quanto ao tamanho do arquivo ou permissão de escrita na pasta indicada.";paraAguarde();exit;} $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name']; $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx"); if($status != 1) {echo "
Ocorreu um erro no envio do arquivo SHX";paraAguarde();exit;} $Arquivo = $_FILES['i3GEOuploaddbf']['tmp_name']; $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".dbf"); if($status != 1) {echo "
Ocorreu um erro no envio do arquivo DBF";paraAguarde();exit;} if($_FILES['i3GEOuploadprj']['name'] != ""){ $Arquivo = $_FILES['i3GEOuploadprj']['tmp_name']; $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".prj"); if($status != 1){ echo "
Ocorreu um erro no envio do arquivo PRJ";paraAguarde();exit; } } if(!file_exists($dirmap."/".$nomePrefixo.".shp")) {echo "
Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;} $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj",""); if($checkphp == true){ echo "Arquivo prj invalido"; unlink($dirmap."/".$nomePrefixo.".shp"); unlink($dirmap."/".$nomePrefixo.".dbf"); unlink($dirmap."/".$nomePrefixo.".shx"); unlink($dirmap."/".$nomePrefixo.".prj"); exit; } $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx",""); if($checkphp == true){ echo "Arquivo shx invalido"; unlink($dirmap."/".$nomePrefixo.".shp"); unlink($dirmap."/".$nomePrefixo.".dbf"); unlink($dirmap."/".$nomePrefixo.".shx"); unlink($dirmap."/".$nomePrefixo.".prj"); exit; } $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf",""); if($checkphp == true){ echo "Arquivo dbf invalido"; unlink($dirmap."/".$nomePrefixo.".shp"); unlink($dirmap."/".$nomePrefixo.".dbf"); unlink($dirmap."/".$nomePrefixo.".shx"); unlink($dirmap."/".$nomePrefixo.".prj"); exit; } echo "
Arquivo enviado.
"; echo ""; //nesse caso o formulario de upload esta sendo executado de dentro de um mapa interativo, por isso o mapfile ja existe echo "Adicionando tema...
"; ob_flush(); flush(); sleep(1); $novolayer = ms_newLayerObj($mapa); $novolayer->set("data",$dirmap."/".$nomePrefixo.".shp"); $novolayer->set("name",$_FILES['i3GEOuploadshp']['name']); $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadshp']['name']); $novolayer->setmetadata("DOWNLOAD","SIM"); $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1); if(!isset($tipo) || $tipo == "") {$tipo = $sfileObj->type;} if ($tipo == 1){$novolayer->set("type",MS_LAYER_POINT);} // ponto if ($tipo == 3){$novolayer->set("type",MS_LAYER_LINE);} if ($tipo == 5){$novolayer->set("type",MS_LAYER_POLYGON);} $novolayer->setmetadata("TEMALOCAL","SIM"); $novolayer->setmetadata("CLASSE","SIM"); $novolayer->setmetadata("TEXTO","NAO"); //if (($tipo != 3) and ($tipo != 8 )){$novolayer->set("type",0);} $novolayer->setfilter(""); $classe = ms_newClassObj($novolayer); $classe->set("name",""); $estilo = ms_newStyleObj($classe); if ($tipo == 1) { $estilo->set("symbolname","ponto"); $estilo->set("size",6); } $estilo->color->setrgb(200,50,0); $estilo->outlinecolor->setrgb(0,0,0); // le os itens $novolayer->set("status",MS_DEFAULT); $abriu = $novolayer->open(); $items = $novolayer->getItems(); $fechou = $novolayer->close(); if ($items != "") { $its = implode(",",$items); $novolayer->setmetadata("ITENS",$its); $novolayer->setmetadata("ITENSDESC",$its); $novolayer->set("template","none.htm"); } if(isset($_GET["uploadEPSG"]) && $_GET["uploadEPSG"] != ""){ $novolayer->setProjection("init=epsg:".$_GET["uploadEPSG"]); } if(file_exists($dirmap."/".$nomePrefixo.".prj")){ $novolayer->setProjection("AUTO"); } //$adiciona = ms_newLayerObj($mapa, $novolayer); $salvo = $mapa->save($map_file); //grava os templates de cada tema echo "Tema criado!!! Redesenhando o mapa."; echo ""; } else { echo "
Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.
"; } restauraCon($map_file,$postgis_mapa); paraAguarde(); function paraAguarde(){ echo ""; } function verificaNome($nome){ if(strlen(basename($nome)) > 200){ exit; } $nome = strtolower($nome); $lista = explode(".",$nome); $extensao = $lista[count($lista) - 1]; if(($extensao != "dbf") && ($extensao != "shx") && ($extensao != "shp") && ($extensao != "prj")) { echo "Nome de arquivo inválido. $nome"; paraAguarde(); exit; } } ?>