Commit 5e8b35bd9e0c0a1da9c7759dbcd962329e362dcf

Authored by Edmar Moretti
1 parent 6bebae49

Exportação de shapefile zipado em datadownload. Exportação de shapefile em OGC mesmo sem uso de OGR

Showing 2 changed files with 34 additions and 5 deletions   Show diff stats
classesphp/funcoes_gerais.php
@@ -1632,6 +1632,8 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1632,6 +1632,8 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1632 else{ 1632 else{
1633 include(dirname(__FILE__)."/../ms_configura.php"); 1633 include(dirname(__FILE__)."/../ms_configura.php");
1634 } 1634 }
  1635 + //para zipar o shapefile
  1636 + include(dirname(__FILE__)."/../pacotes/kmlmapserver/classes/zip.class.php");
1635 $versao = versao(); 1637 $versao = versao();
1636 $versao = $versao["principal"]; 1638 $versao = $versao["principal"];
1637 $dataArquivos = array(); 1639 $dataArquivos = array();
@@ -1781,6 +1783,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1781,6 +1783,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1781 } 1783 }
1782 //$temas agora é um array com os NAMEs dos LAYERS que serão baixados 1784 //$temas agora é um array com os NAMEs dos LAYERS que serão baixados
1783 $radtmp = dirname($dir_tmp); 1785 $radtmp = dirname($dir_tmp);
  1786 + $ziper = new zipfile();
1784 foreach ($temas as $tema){ 1787 foreach ($temas as $tema){
1785 $l = $map->getlayerbyname($tema); 1788 $l = $map->getlayerbyname($tema);
1786 $novonomelayer = $tema; 1789 $novonomelayer = $tema;
@@ -1796,6 +1799,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1796,6 +1799,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1796 unlink($nomeshp.".shp"); 1799 unlink($nomeshp.".shp");
1797 unlink($nomeshp.".shx"); 1800 unlink($nomeshp.".shx");
1798 unlink($nomeshp.".prj"); 1801 unlink($nomeshp.".prj");
  1802 + unlink($nomeshp.".zip");
1799 } 1803 }
1800 } 1804 }
1801 // 1805 //
@@ -1868,17 +1872,31 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1868,17 +1872,31 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1868 if($nomeshp == false){ 1872 if($nomeshp == false){
1869 return array("arquivos"=>"<span style=color:red >Ocorreu um erro, tente novamente","nreg"=>0); 1873 return array("arquivos"=>"<span style=color:red >Ocorreu um erro, tente novamente","nreg"=>0);
1870 } 1874 }
1871 - $resultado[] = str_replace($radtmp."/","",$nomeshp).".shp"; 1875 + $pre = str_replace($radtmp."/","",$nomeshp);
  1876 + $resultado[] = $pre.".shp";
1872 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shp")); 1877 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shp"));
1873 1878
1874 - $resultado[] = str_replace($radtmp."/","",$nomeshp).".shx"; 1879 + $resultado[] = $pre.".shx";
1875 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shx")); 1880 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shx"));
1876 1881
1877 - $resultado[] = str_replace($radtmp."/","",$nomeshp).".dbf"; 1882 + $resultado[] = $pre.".dbf";
1878 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".dbf")); 1883 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".dbf"));
1879 1884
1880 - $resultado[] = str_replace($radtmp."/","",$nomeshp).".prj"; 1885 + $resultado[] = $pre.".prj";
1881 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".prj")); 1886 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".prj"));
  1887 + //zipa o arquivo
  1888 + $zip = basename($pre);
  1889 + if(!file_exists($pre.".zip")){
  1890 + $ziper->addFile(file_get_contents($nomeshp.".shp"), $zip.".shp");
  1891 + $ziper->addFile(file_get_contents($nomeshp.".shx"), $zip.".shx");
  1892 + $ziper->addFile(file_get_contents($nomeshp.".dbf"), $zip.".dbf");
  1893 + $ziper->addFile(file_get_contents($nomeshp.".prj"), $zip.".prj");
  1894 + $fp = fopen($nomeshp.".zip","wb");
  1895 + fwrite($fp, $ziper->file());
  1896 + fclose($fp);
  1897 + }
  1898 + $resultado[] = $pre.".zip";
  1899 + $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".zip"));
1882 } 1900 }
1883 } 1901 }
1884 } 1902 }
@@ -1914,7 +1932,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1914,7 +1932,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1914 $maptemp->save($nomemapfile); 1932 $maptemp->save($nomemapfile);
1915 $nomemapfileurl = str_replace($radtmp."/","",$nomemapfile); 1933 $nomemapfileurl = str_replace($radtmp."/","",$nomemapfile);
1916 } 1934 }
1917 - return array("tema"=>$tema,"mapfile"=>$nomemapfile,"mapfileurl"=>$nomemapfileurl,"arquivos"=>implode(",",$resultado),"nreg"=>$nreg,"datas"=>$dataArquivos); 1935 + return array("tema"=>$tema,"mapfile"=>$nomemapfile,"mapfileurl"=>$nomemapfileurl,"arquivos"=>implode(",",$resultado),"nreg"=>$nreg,"datas"=>$dataArquivos, "shape-zip"=>$nomeshp.".zip");
1918 } 1936 }
1919 1937
1920 /* 1938 /*
@@ -201,6 +201,17 @@ if(strtolower($OUTPUTFORMAT) == &quot;kml&quot; &amp;&amp; $ogrOutput == false){ @@ -201,6 +201,17 @@ if(strtolower($OUTPUTFORMAT) == &quot;kml&quot; &amp;&amp; $ogrOutput == false){
201 header("Location:".$urln); 201 header("Location:".$urln);
202 exit; 202 exit;
203 } 203 }
  204 +if(strtolower($OUTPUTFORMAT) == "shape-zip" && $ogrOutput == false){
  205 + $retorno = downloadTema2("",$tema,$locaplic,$dir_tmp,$postgis_mapa);
  206 + $zip = $retorno["shape-zip"];
  207 + if(file_exists($zip)){
  208 + ob_end_clean();
  209 + header('Content-type: application/zip');
  210 + header('Content-Disposition: attachment; filename='.basename($zip));
  211 + echo file_get_contents($zip);
  212 + }
  213 + exit;
  214 +}
204 // 215 //
205 //caso seja uma requisição WMS com format 216 //caso seja uma requisição WMS com format
206 // 217 //