
POR FAVOR, si no es molestia de quienes esten interesados en seguir en este post, puedan verificar o aportar a mi codigo para que sea mas POO (Porgramacion Orientada a Objetos).
SE TRATA DE UNA APLICACION MUY CONOCIDA, QUE PERMITE DAR MANTENIMEINTO A REGISTROS Y UN UPLOAD DE ARCHIVOS.
conexion.php
Código PHP:
<?php
class MySQL{
private $conexion;
public function MySQL(){
if(!isset($this->conexion)){
$this->conexion = (mysql_connect("localhost","root","")) or die(mysql_error());
mysql_select_db("dbgennio",$this->conexion) or die(mysql_error());
}
}
public function consulta($consulta){
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado){
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}
public function fetch_array($consulta){
return mysql_fetch_array($consulta);
}
public function num_rows($consulta){
return mysql_num_rows($consulta);
}
}
?>
index.php
Código PHP:
<?php
require_once("conexion.php");
$db = new MySQL();
ini_set('post_max_size','100M');
ini_set('upload_max_filesize','100M');
ini_set('max_execution_time','1000');
ini_set('max_input_time','1000');
$id=$_POST['id'];//SOLO CUANDO ES ACTUALIZAR (PARA VISUALIZAR LOS CAMPOS)
$nuevo=$_POST['nuevo'];
$enviar=$_POST['enviar'];
//Guardando o Actualizando
if(isset($enviar)){
$cod_arc=$_POST['cod_arc'];//SOLO CUANDO ES ACTUALIZAR (PARA ACTUALIZAR LOS CAMPOS)
$tit_arc=trim($_POST['tit_arc']);
$archivo=$_FILES['rut_arc']['name'];
$est_arc=$_POST['est_arc'];
if(empty($est_arc)){$est_arc=0;}
if($enviar=="Registrar"){
$cod_arc=substr($tit_arc,0,3).substr($pal_cla_arc,0,3).substr(md5(uniqid(rand())),0,2);
$extension=end(explode(".",$archivo));
if ($archivo!=""){
// guardamos el archivo a la carpeta files
$rut_arc="files/".$cod_arc.".".$extension;
if(copy($_FILES['rut_arc']['tmp_name'],$rut_arc)){
$status="Archivo Cargado: <b>".$rut_arc."</b>";
$rs=$db->consulta("insert into tb_archivo values('$cod_arc','$tit_arc','$rut_arc','$est_arc')");
}else{
$status="Error: No se logro cargar el archivo";
}
}else{
$status = "Error: Archivo no encontrada para subir al Servidor";
}
}else{
if ($archivo!=""){
$rs=$db->consulta("select rut_arc from tb_archivo where cod_arc='$cod_arc'");
if($db->num_rows($rs)>0){
$row=$db->fetch_array($rs);
unlink($row['rut_arc']);
}
$rut_arc_nueva=",rut_arc='$rut_arc'";
}
$cod_arc=substr($tit_arc,0,3).substr($pal_cla_arc,0,3).substr(md5(uniqid(rand())),0,2);
$extension=end(explode(".",$archivo));
// guardamos el archivo a la carpeta files
$rut_arc="files/".$cod_arc.".".$extension;
if(copy($_FILES['rut_arc']['tmp_name'],$rut_arc)){
$status="Archivo Cargado: <b>".$rut_arc."</b>";
$rs=$db->consulta("update tb_archivo set tit_arc='$tit_arc', $rut_arc_nueva ,est_arc='$est_arc' where cod_arc='$cod_arc'");
$fecha=date("Y-m-d h:i:s");
$rs=$db->consulta("insert into tb_modifica values('','$cod_arc','$fecha')");
}else{
$status="Error: No se logro cargar el archivo";
}
$id="";//para que ya no salgan los actualizacion
}
}
////////////////////////////////////////////////////////////////////////////////////
//SETEANDO LAS VARIABLES SI ES ACTUALIZACION
if(isset($id) and $id!=""){
$rs=$db->consulta("select tit_arc,est_arc from tb_archivo where cod_arc=".$id);
$row=$db->fetch_array($rs);
$tit_arc=$row['tit_arc'];$est_arc=$row['est_arc'];
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>BUSCADOR DE ARCHIVOS - PAGINA PRINCIPAL</title>
<link rel="stylesheet" type="text/css" href="estilos.css">
<script language="javascript" src="javascript.js"></script>
</head>
<body>
<form name="frm1" id="frm1" method="post" enctype="multipart/form-data">
<div class="negrita_grande" align="center">BUSQUEDA DE ARCHIVOS</div>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" align="center">
<?php if(!isset($nuevo) and ($id=="" or !isset($id))){ ?>
<input type="submit" name="nuevo" value="Nuevo Archivo" />
<?php }?>
</td>
</tr>
<tr>
<td height="10" colspan="2"></td>
</tr>
<?php if(isset($nuevo) or (isset($id) and $id!="")){ ?>
<tr>
<td width="140" align="left">Titulo:</td>
<td><input name="tit_arc" type="text" size="55" value="<?php echo $tit_arc?>"></td>
</tr>
<tr>
<td align="left">UpLoad del Archivo:</td>
<td><input name="rut_arc" type="file" size="40" /></td>
</tr>
<tr>
<td align="left">Estado:</td>
<td><input name="est_arc" type="checkbox" value="1" <?php ($est_arc==1 or isset($nuevo))?"checked":"";?>></td>
</tr>
<tr>
<td height="20" colspan="2"></td>
</tr>
<tr>
<td colspan="2" align="center">
<?php (!isset($nuevo))?$sub="Actualizar":$sub="Registrar"; ?>
<input type="submit" name="enviar" value="<?=$sub?>" onClick="return validar()" />
<input type="button" name="cancelar" value="Cancelar" onClick="document.location='index.php'" />
<?php if(isset($id) and $id!=""){echo '<input name="cod_arc" type="hidden" value="'.$id.'">';}?>
</td>
</tr>
<?php }?>
</table>
</form>
<?php
if(!isset($nuevo) and ($id=="" or !isset($id))){
include('consulta.php');
}
?>
</body>
</html>

consulta.php
Código PHP:
<?php
$rs=$db->consulta("select cod_arc,tit_arc,rut_arc from tb_archivo order by tit_arc");
$i=1;
if($db->num_rows($rs)>0){
?>
<table style="border:1px solid #cccccc; color:#000099;" align="center" cellpadding="3" cellspacing="0">
<tr style="background:#A65353;color:#FFFFFF">
<td align="center">Titulo</td>
<td align="center">Modificar</td>
<td align="center">Eliminar</td>
</tr>
<?php while($row=$db->fetch_array($rs)){
($i%2==0)?$color="#F3F3F3":$color="#EAEAEA";?>
<tr style='background:<?=$color?>'>
<td><a href="#" onclick="window.open('<?php echo $row['rut_arc']; ?>')"><?php echo $row['tit_arc'] ?></a></td>
<td><a href="#" onClick="document.location='index.php?id=<?php echo $row['cod_arc']?>';" ><img border="0" src="imagenes/editar.png" width="20" height="20" alt="Modificar" title="Modificar" /></a></td>
<td><a href="#" onClick="eliminar('<?php echo $row['cod_arc']?>')" ><img alt="Eliminar" src="imagenes/eliminar.png" width="20" height="20" border="0" title="Eliminar"/></a></td>
</tr>
<?php $i++; } ?>
</table>
<?php } ?>
javascript.js
Código HTML:
// JavaScript Document
function validar(){
/*if(trim(document.frm1.nombre.value) == "") {
alert("Falta Ingresar el Nombre");
document.frm1.nombre.focus();
return false;
}else{
return true;
}*/
return true;
}
var XMLRequest;
function getHTTPObject() {
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else if (window.ActiveXObject){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function eliminar(id){
if(confirm("Desea Eliminar el Archivo")){
XMLRequest=getHTTPObject();
var url="eliminar.php?id="+id;
XMLRequest.open("GET",url,true);
XMLRequest.send(null);
self.location = "index.php";
}
}
eliminar.php
Código PHP:
<?php
require_once("conexion.php");
$db = new MySQL();
$id=$_REQUEST[id];
if(isset($id)){
unlink("files/".$id);
$rs=mysql_query("delete from tb_archivo where cod_arc='$id'");
}
?>
y por ultimo, la base de datos
Código PHP:
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 27-10-2008 a las 21:13:44
-- Versión del servidor: 5.0.51
-- Versión de PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de datos: `dbgennio`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `tb_archivo`
--
DROP TABLE IF EXISTS `tb_archivo`;
CREATE TABLE `tb_archivo` (
`cod_arc` varchar(8) NOT NULL,
`tit_arc` varchar(20) NOT NULL,
`des_arc` varchar(150) NOT NULL,
`pal_cla_arc` varchar(20) NOT NULL,
`rut_ar` varchar(150) NOT NULL,
`est_arc` int(1) NOT NULL,
PRIMARY KEY (`cod_arc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Volcar la base de datos para la tabla `tb_archivo`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `tb_modifica`
--
DROP TABLE IF EXISTS `tb_modifica`;
CREATE TABLE `tb_modifica` (
`id_mod` int(8) NOT NULL,
`cod_arc_mod` varchar(8) NOT NULL,
`fec_mod` datetime NOT NULL,
PRIMARY KEY (`id_mod`),
KEY `cod_arc_mod` (`cod_arc_mod`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Volcar la base de datos para la tabla `tb_modifica`
--
--
-- Filtros para las tablas descargadas (dump)
--
--
-- Filtros para la tabla `tb_modifica`
--
ALTER TABLE `tb_modifica`
ADD CONSTRAINT `tb_modifica_ibfk_1` FOREIGN KEY (`cod_arc_mod`) REFERENCES `tb_archivo` (`cod_arc`);
bueno, si alguien llego hasta aca, muchas gracias

(claro si leiste lo necesario

.

DIOS LOS BENDIGA.