|
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/documentos/docs/fnc/ |
Upload File : |
<?php
class Archivo extends Componente{
/*constructor*/
function Archivo(){
$this->DBManager('MySQL');
$this->connect();
}
/*cargar archivo*/
function captureUpload($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\"");
//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");
//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:'');
}
}
//$this->mostrarMensaje( $destDir.$file['name']);
//and now the big moment
if(!@copy($file['tmp_name'], $destDir.$file['name']))
return array(false,"Permission denied to copy the file");
else
return array(true,$file['name']);
}
/* modificar archivo*/
function mod_archivo($titulo,$archivo,$file,$id_arc,$nivel,$id,$name_carpeta,$ids,$name_subcarpeta,$idss,$name_subcarpetas,$idsss,$name_subcarpetass,$id_doc,$named){
$sql = "SELECT id FROM archivo WHERE documento='$id_doc' AND titulo='$titulo' AND id!='$id_arc'";
$this->execute($sql);
$cant=$this->numRows();
if($cant==0){
$response;
$rutafoto ="../archivos/".$file;
if (file_exists($rutafoto)){
if(!unlink($rutafoto)){
$this->mostrarMensaje("Error: no se pudo borrar el archivo ".$file." del servidor \\nPermiso denegado");
}
list($success,$response) = $this->captureUpload('../archivos/',false,'archivo');
if(!$success){
$this->mostrarMensaje("Error: ".$response);
}else{
$sql="update archivo set titulo='$titulo', fichero='$response' where id='$id_arc'";
}
}else{
list($success,$response) = $this->captureUpload('../archivos/',false,'archivo');
if(!$success){
$this->mostrarMensaje("Error: ".$response);
}else{
$sql="update archivo set titulo='$titulo', fichero='$response' where id='$id_arc'";
}
}
if($this->execute($sql)){
$this->mostrarMensaje("File modified!");
}else{
$this->mostrarMensaje("�imposible consultar la base de datos!");
}
}else{
$this->mostrarMensaje("Ya existe un archivo con el mismo nombre. Especifique otro nombre de archivo.");
echo "<script>window.open(\"../mod_archivo.php?nivel=$nivel&id=$id&ids=$ids&idss=$idss&idsss=$idsss&name_carpeta=$name_carpeta&name_subcarpeta=$name_subcarpeta&name_subcarpetas=$name_subcarpetas&name_subcarpetass=$name_subcarpetass&titulo=$titulo&id_doc=$id_doc&id_arc=$id_arc\",\"contenido\");</script>";
}
if($nivel==1){
echo "<script>window.open(\"../listar_archivo.php?nivel=1&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta\",\"contenido\");</script>";
}
if($nivel==2){
echo "<script>window.open(\"../listar_archivo.php?nivel=2&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta\",\"contenido\");</script>";
}
if($nivel==3){
echo "<script>window.open(\"../listar_archivo.php?nivel=3&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas\",\"contenido\");</script>";
}
if($nivel==4){
echo "<script>window.open(\"../listar_archivo.php?nivel=4&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas&idsss=$idsss&name_subcarpetass=$name_subcarpetass\",\"contenido\");</script>";
}
}
/* agregar archivo*/
function add_archivo($titulo,$archivo,$nivel,$id,$name_carpeta,$ids,$name_subcarpeta,$idss,$name_subcarpetas,$idsss,$name_subcarpetass,$id_doc,$named,$name_carpeta,$name_subcarpeta,$name_subcarpetas,$name_subcarpetass){
$hora = date('H:i:s',time());
$sql = "SELECT id FROM archivo WHERE documento='$id_doc' AND titulo='$titulo'";
$this->execute($sql);
$cant=$this->numRows();
if($cant==0){
$response;
list($success,$response) = $this->captureUpload('../archivos/',false,'archivo');
if(!$success){
$this->mostrarMensaje("Error: ".$response);
}else{
$sql="insert into archivo (documento, titulo, fichero, hora) values ('$id_doc','$titulo','$response', '$hora')";
if($this->execute($sql)){
$this->mostrarMensaje("File Saved.");
}else{
$this->mostrarMensaje("Can not access to DB.");
}
}
}else{
$this->mostrarMensaje("Ya existe un archivo con el mismo nombre. Especifique otro nombre de archivo.");
echo "<script>window.open(\"../add_archivo.php?nivel=$nivel&id=$id&ids=$ids&idss=$idss&idsss=$idsss&name_carpeta=$name_carpeta&name_subcarpeta=$name_subcarpeta&name_subcarpetas=$name_subcarpetas&name_subcarpetass=$name_subcarpetass&titulo=$titulo&id_doc=$id_doc&named=$named\",\"contenido\");</script>";
}
if($nivel==1){
echo "<script>window.open(\"../listar_archivo.php?nivel=1&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta\",\"contenido\");</script>";
}
if($nivel==2){
echo "<script>window.open(\"../listar_archivo.php?nivel=2&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta\",\"contenido\");</script>";
}
if($nivel==3){
echo "<script>window.open(\"../listar_archivo.php?nivel=3&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas\",\"contenido\");</script>";
}
if($nivel==4){
echo "<script>window.open(\"../listar_archivo.php?nivel=4&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas&idsss=$idsss&name_subcarpetass=$name_subcarpetass\",\"contenido\");</script>";
}
}
/* eliminar archivo*/
function eli_archivo($id_arc,$nivel,$id,$name_carpeta,$ids,$name_subcarpeta,$idss,$name_subcarpetas,$idsss,$name_subcarpetass,$id_doc,$named){
$sql="select fichero from archivo where id='$id_arc'";
$this->execute($sql);
if(list($fichero)=$this->fetchRow()){
//borro archivos
$rutafoto="../archivos/".$fichero;
if (file_exists($rutafoto)){
if(!unlink($rutafoto)){
$this->mostrarMensaje("Error: no se pudo borrar el archivo del servidor \\nPermiso denegado!");
}else{
$sql="delete from archivo where id = '$id_arc'";
if($this->execute($sql)){
$this->mostrarMensaje("Archivo eliminado con �xito!");
}else{
$this->mostrarMensaje("�imposible consultar la base de datos!!");
}
}
}else{
$sql="delete from archivo where id = '$id_arc'";
if($this->execute($sql)){
$this->mostrarMensaje("Archivo eliminado con �xito!");
}else{
$this->mostrarMensaje("�imposible consultar la base de datos!!");
}
}
}else{
$this->mostrarMensaje("�imposible consultar la base de datos!");
}
if($nivel==1){
echo "<script>window.open(\"../listar_archivo.php?nivel=1&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta\",\"contenido\");</script>";
}
if($nivel==2){
echo "<script>window.open(\"../listar_archivo.php?nivel=2&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta\",\"contenido\");</script>";
}
if($nivel==3){
echo "<script>window.open(\"../listar_archivo.php?nivel=3&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas\",\"contenido\");</script>";
}
if($nivel==4){
echo "<script>window.open(\"../listar_archivo.php?nivel=3&id_doc=$id_doc&named=$named&id=$id&name_carpeta=$name_carpeta&ids=$ids&name_subcarpeta=$name_subcarpeta&idss=$idss&name_subcarpetas=$name_subcarpetas&idsss=$idsss&name_subcarpetass=$name_subcarpetass\",\"contenido\");</script>";
}
}
}
?>