upload.php
3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");
//error_reporting(0);
$_GET = array_merge($_GET,$_POST);
session_name("i3GeoPHP");
if (isset($_GET["g_sid"]))
{session_id($_GET["g_sid"]);}
session_start();
$map_file = $_SESSION["map_file"];
include (dirname(__FILE__)."/../../ms_configura.php");
include("../blacklist.php");
verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
$tema = $_GET["tema"];
if(isset($logExec) && $logExec["upload"] == true){
i3GeoLog("prog: aplicarsld tema: $tema filename:" . $_FILES['i3GEOaplicarsld']['name'],$dir_tmp);
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../css/input.css" />
<link rel="stylesheet" type="text/css" href="../../css/geral.css" />
<title></title>
</head>
<body bgcolor="white" style="background-color:white;text-align:left;">
<p>
<?php
if (isset($_FILES['i3GEOaplicarsld']['name']) && strlen(basename($_FILES['i3GEOaplicarsld']['name'])) < 200 )
{
//$ndir = dirname($filen);
$mapa = ms_newMapObj($map_file);
echo "<p class='paragrafo' >Carregando o arquivo...</p>";
$dirmap = dirname($map_file);
//verifica nomes
$ArquivoDest = $_FILES['i3GEOaplicarsld']['name'];
$ArquivoDest = strip_tags($ArquivoDest);
$ArquivoDest = htmlspecialchars($ArquivoDest, ENT_QUOTES);
$ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
$ArquivoDest = str_replace(".sld","",$ArquivoDest);
$ArquivoDest = str_replace(".","",$ArquivoDest).".sld";
verificaNome($ArquivoDest);
//sobe arquivo
$Arquivo = $_FILES['i3GEOaplicarsld']['tmp_name'];
$checkphp = fileContemString($_FILES['i3GEOaplicarsld']['tmp_name'],"<?php");
if($checkphp == true){
exit;
}
$status = move_uploaded_file($Arquivo,$dirmap."/".$ArquivoDest);
if($status != 1)
{echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SLD";paraAguarde();exit;}
if($status == 1)
{
echo "<p class='paragrafo' >Arquivo enviado. Aplicando SLD...</p>";
$layer = $mapa->getlayerbyname($tema);
$arq = $dirmap."/".$ArquivoDest;
$abre = fopen($arq, "r");
$buffer = fread($abre, filesize($arq));
fclose($abre);
$layer->applySLD($buffer);
$layer->setmetadata("cache","");
$salvo = $mapa->save($map_file);
echo "<p class='paragrafo' >Aplicado!!! Redesenhando o mapa.";
echo "<script>window.parent.i3GEO.atualiza();window.parent.i3GEO.Interface.atualizaTema('',window.parent.i3GEO.temaAtivo);</script>";
}
else
{
echo "<p class='paragrafo' >Erro ao enviar o arquivo.</p>";
paraAguarde();
exit;
}
}
else
{
echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
}
paraAguarde();
function paraAguarde(){
echo "<script>window.parent.i3GEOF.aplicarsld.aguarde.visibility='hidden';</script>";
}
function verificaNome($nome)
{
$nome = strtolower($nome);
$lista = explode(".",$nome);
$extensao = $lista[count($lista) - 1];
if($extensao != "xml" && $extensao != "sld")
{
echo "Nome de arquivo inválido.";
paraAguarde();
exit;
}
}
?>
</body>
</html>