|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/logicswapweb/aplicaciones/admon/clientes/fnc/ |
Upload File : |
<?php
include('DBConnect.php');
/********************************************************
clase cliente:
utiliza la interfas de BD para realizar
las necesidades propias de registro y
verificacion de clientes de el sitio
*********************************************************/
class Inmueble extends DBManager{
/***********************************************************
variable: fecha_actual
descripcion: matiene la fecha del sistema
***********************************************************/
var $fecha_actual;
var $contacto = "[email protected]";
/***********************************************************
variable: salida
descripcion: da los resultados a todas las acciones executadas
por el cliente
***********************************************************/
var $salida = array();
/************************************************************
FUNCION: cliente (constructor)
DESCRIPCION: inicializa interfaz de conexion de DB
*************************************************************/
function Inmueble() {
$this->DBManager('MySQL');
$this->connect();
$this->fecha = date('Y-m-d');
$this->hora = date('H-i-s');
}
/***********************************************************
funcion: get_error
descripcion: trae la descripcion del error de el archivo
de errores
***********************************************************/
function get_error($error){
$file = @file("error.txt");
$desc_error = "none";
if(!$file){ $desc_error = "Imposible leer el fichero de error!"; return $desc_error;}
else{
$siga=true;
$lineas = sizeof($file);
$i=0;
while(($i++<=$lineas) && ($siga)){
if(substr($file[$i], 0, 1) == "#" || !strlen($file[$i])) { continue; }
$pos = strpos ($file[$i], $error);
if($pos===false){
continue;
}else{
$vec = explode("|",$file[$i]);
$desc_error = $vec[1];
break 1;
}
}
if($i-1==$lineas){$desc_error="Error no encontrado!";}
return $desc_error;
}
}
/************************************************************
FUNCION: set_salida
DESCRIPCION: pone valores a la salida de la funcion en
salida['resul'] y salida['msg']
*************************************************************/
function set_salida($resul,$msg){
$this->salida['resul']=$resul;
$this->salida['msg']=$msg;
//echo $this->salida['msg']."<br><br>";
}
/************************************************************
FUNCION: captureUpload
DESCRIPCION: copia el archivo de inmuebles a una hubicacion
en el servidor y lo renombra si ya existe
*************************************************************/
function cargar_archivo($destDir,$nameCallback = false,$fieldName = '_upload',$maxFileSize = false){
//make sure something is there
if(!isset($_FILES[$fieldName]) ||!isset($_FILES)||!is_array($_FILES[$fieldName]) ||!$_FILES[$fieldName]['name'])
return array(false,"El formulario no tiene la etiqueta enctype=\"multipart/form-data\"");//array(false,'No files were uploaded. Make sure your form tag\'s enctype was set to multipart/form-data and that the right field is being checked for the uploaded file.');
//normalize the file variable
$file = $_FILES[$fieldName];
if (!isset($file['type'])) $file['type'] = '';
if (!isset($file['size'])) $file['size'] = '';
if (!isset($file['tmp_name'])) $file['tmp_name'] = '';
$file['name'] = preg_replace(
'/[^a-zA-Z0-9\.\$\%\'\`\-\@\{\}\~\!\#\(\)\&\_\^]/'
,'',str_replace(array(' ','%20'),array('_','_'),$file['name']));
//was it to big?
if($maxFileSize && ($file['size'] > $maxFileSize))
return array(false,"El tama�o del archivo es muy grande");//array(false,'The file uploaded was to large.');
//normalize destDir
if(strlen($destDir)>0 && $destDir[strlen($destDir)-1] != "/")
$destDir = $destDir.'/';
//should we change the filename via a callback?
if($nameCallback)
$file['name'] = call_user_func_array($nameCallback, array($file,$destDir));
$i = 0;
//if the filename already exists, append _copy_x (with extension)
if(strpos($file['name'],'.') !== false){
$bits = explode('.',$file['name']);
$ext = array_pop($bits);
while(file_exists($destDir.implode('.', $bits).($i?'_copy_'.$i:'').'.'.$ext)){
++$i;
$file['name'] = implode('.',$bits).($i?'_copy_'.$i:'').'.'.$ext;
}
//if the filename already exists, append _copy_x (no extension)
} else {
while(file_exists($destDir.$file['name'].($i ?'_copy_'.$i:''))){
++$i;
$file['name'] = $file['name'].($i?'_copy_'.$i:'');
}
}
//and now the big moment
if(!@copy($file['tmp_name'], $destDir.$file['name']))
return array(false,"Permiso denegado para copiar el archivo!");//array(false,'Could not write the file "'.$file['name'].'" to: "'.$destDir.'". Permission denied.');
else
return array(true,$file['name']);
}
/************************************************************
FUNCION: add_inmuebles
DESCRIPCION: ingresa informacion los inmuebles en la DB
*************************************************************/
function add_inmuebles($archivo, $tipo, $disposicion){
$dir="indefinido";
if($disposicion=="../venta"){
$dir = "venta/";
}else{
$dir = "../arrendamiento/";
}
$dir.=$tipo."/";
$siga = $this->vaciar_inmuebles($tipo,$disposicion);
if($siga['resul']){
list($resul,$response)=$this->cargar_archivo($dir,false,$archivo);
if($resul){
$file="";
$file = @file($dir.$response);
if($file){
$file = implode("",$file);
$file= explode(":",$file);
$cantidad = count($file);
$j=0;
$ind=0;
$inmueble = array();
while( $j<($cantidad-1)){
$sql = "insert into inmueble values ('$tipo','$disposicion',";
for($i=0;$i<=21;$i++){
$inmueble[$ind][$i]=trim($file[$j]);
$temp = "".$inmueble[$ind][$i]."";
$sql.="'".$temp."',";
$j++;
}
$sql=substr($sql,0,strlen($sql)-1);//se quita la ultima ","
$sql.=')';
if(!$this->execute($sql)){
$n1=ceil($j/21);
$n2=floor($j/21);
$out = trim($this->get_error("[008]"));
$out.="\\ncerca de las lineas($n1,$n2)del archivo \\nerror:: ";
$out.=trim($this->getException());
$this->set_salida(false,$out);
return $this->salida;
//break 2;
}
$ind++;
}//end while
if($j==($cantidad-1)){
$this->set_salida(true,"Archivo cargado exitosamente!");
return $this->salida;
}else{
$this->set_salida(false,trim($this->getException()));
return $this->salida;
}
}else{
$this->set_salida(false,trim($this->get_error("[007]")));
return $this->salida;
}
}else{
$this->set_salida(false,$response);
return $this->salida;
}
}else{
return $this->salida;
}
}//end add_inmuebles
/************************************************************
FUNCION: eli_inmuebles
DESCRIPCION: elimina el contenido de la tabla inmuebles
*************************************************************/
function vaciar_inmuebles($tipo,$disposicion){
$sql="delete from inmueble where tipo='$tipo' and finalidad='$disposicion'";
if($this->execute($sql)){
$this->set_salida(true,"Se borro la informaci�n almacenada!");
}else{
echo $this->getException();
$this->set_salida(false,$this->getException());
}
return $this->salida;
}
/************************************************************
FUNCION: query_listar
DESCRIPCION: devuelve el query de la lista actual
*************************************************************/
function query_listar($tipo, $buscar){
if(!$buscar){
$sql="select codigo, barrio, urbanizacion, finalidad from inmueble where tipo='$tipo' order by codigo";
return $sql;
}else{
$sql="select codigo, barrio, urbanizacion, finalidad from inmueble where (codigo LIKE '%$buscar%') or (urbanizacion LIKE '%$buscar%') or (barrio LIKE '%$buscar%') or (direccion LIKE '%$buscar%')";
return $sql;
}
}
/************************************************************
FUNCION: add_imagen
DESCRIPCION: copia una imagen al servidor y la registra en la DB
*************************************************************/
function add_imagen($inmueble){
$dir="../img_catalogo/";
list($resul,$response)=$this->cargar_archivo($dir,false,"archivo");
if($resul){
$sql = "insert into img_catalogo (inmueble,nombre) values('$inmueble','$response')";
if($this->execute($sql)){
$this->set_salida(true,"Imagen copiada y registrada con exito!");
}else{
$this->set_salida(false,"Imagen copiada.\\nerror::".$this->getException());
}
}else{
$this->set_salida(false,$response);
}
}
/************************************************************
FUNCION: eli_imagen
DESCRIPCION: copia una imagen al servidor y la registra en la DB
*************************************************************/
function eli_imagen($imagen,$id){
$file = "../img_catalogo/".$imagen;
echo $file;
if(unlink($file)){
$sql="delete from img_catalogo where id='$id'";
if($this->execute($sql)){
$this->set_salida(true,"Imagen Eliminada con exito!");
}else{
$this->set_salida(false,"Imagen Borrada.\\nerror::".$this->getException());
}
}else{
$this->set_salida(false,"Permiso Denegado Para eliminar la Imagen en el Servidor");
}
}
/************************************************************
FUNCION: mod_imagen
DESCRIPCION: elimina la imagen anterior y copia y registra la nueva
*************************************************************/
function mod_imagen($imagen,$id){
$dir="../img_catalogo/";
$file = $dir.$imagen;
if(unlink($file)){//elimino la anterior
list($resul,$response)=$this->cargar_archivo($dir,false,"archivo");//copio la nueva
if($resul){
$sql="update img_catalogo set nombre = '$response' where id='$id'";
if($this->execute($sql)){
$this->set_salida(true,"Imagen Modificada con exito!");
}else{
$this->set_salida(false,"Imagen Borrada.\\nerror::".$this->getException());
}
}else{
$this->set_salida(false,"Imagen Borrada.\\nerror::".$response);
}
}else{
$this->set_salida(false,"Permiso Denegado Para reemplazar la imagen en el Servidor");
}
}
}//end class Inmueble
?>