Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2012, 16:01
SurKaiser
 
Fecha de Ingreso: enero-2012
Ubicación: localhost
Mensajes: 37
Antigüedad: 12 años, 3 meses
Puntos: 10
[Aporte] Subir Imagenes PHP con POO y PDO

Mi aporte sin tuto por falta de caracteres :s

Orden

-/raiz/ :
raiz/imagenes/

raiz/librerias/
raiz/librerias/clases.php
raiz /librerias/clase_imagen.php
raiz/librerias/bd/PDO_bd.php

raiz/config.php
raiz/subir.html
raiz/subir.php

subir.html:

Código HTML:
<!--

/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*               http://www.surkaiser.com.es/
*
*                  $subir.html
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/

-->
<html>
<head>
<title>Subir imagen por SurKaiser</title>
<meta name="autor" content="SurKaiser">
</head>
<body>
<table width="50%" align="center">
<tr>
<td width="25%">Selecciona una imagen</td>
<td width="25%"> Archivos permitidos : *jpg, *bmp, *png y *gif</td>
</tr>
<form action="subir.php" method="post" enctype="multipart/form-data">
<tr>
<td>&nbsp;</td>
<td><input type="file" name="imagen" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="enviar"></td>
</tr>
</form>
</table>

</body>
</html> 
subir.php:
Código PHP:
<?php

/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*               http://www.surkaiser.com.es/
*
*                  $clase_imagen.php
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/

@include("config.php");
           
$archivo $_FILES['imagen'];
                          
$arnombre $_POST['imagen'];
          
$imgvas = new imagen;
        
           if(
$imgvas->comprueba($archivo['name']))
           {
          
                  
$imagen = new extension($archivo,$cf_ex,$cf['dir']);
                
           }
           else {
                   echo 
"Debes seleccionar la imagen a subir";
           }
          
?>
clases.php :
Código PHP:
<?PHP if (! defined("EN_SURKAISER")) { exit("No se puede visializar los scripts"); }
/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*               http://www.surkaiser.com.es/
*
*                  $clases.php
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/


         
include_once("bd/PDO_bd.php");
         include_once(
"clase_imagen.php");
        
        
         
?>
clase_imagen.php
Código PHP:
<?PHP if (! defined("EN_SURKAISER")) { exit("No se puede visializar los scripts"); }
/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*          http://www.surkaiser.com.es/
*
*                  $clase_imagen.php
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/


  
class  imagen
  
{
          protected 
$archivo;
          protected 
$url;
          protected 
$extensiones;
        
                   public function 
comprueba($ar)
                   {
                           
$this->archivo $ar;
                  
                                if(empty(
$this->archivo))
                                {
                                        return 
false;
                                }
                                else {
                                        return 
true;
                                        }
                   }
  }
  class 
subir extends imagen
  
{
          private 
$dir string;
          private 
$random;
          private 
$exten ;
          private 
$arr;
          public function 
subir($ar,$ex,$dir)
          {
                  
$this->dir=$dir;
        
                   
$this->archivo explode(".",$ar['name']);
                   
$this->extensiones $ex;
                   
$random = (date("d:m:y:h:i") * rand()*9999999);

                        if(
in_array($this->archivo[1],$this->extensiones))
                        {
                          
                                
$this->url $dir.$random.".".$this->archivo[1];

                  if(!
file_exists($this->dir))
                  {
                          @
mkdir($this->dir,777);
                  }
                  
$this->arr = array(':nombre' => "hola",
                  
':des' => "Hola",
                  
':url' => $this->url
                  
);
                  
$this->archivo $ar;
                        if(
move_uploaded_file($this->archivo['tmp_name'],$this->url))
                        {
                 
$base = new bd(TBD,SER,BD,US,CL);

                  
$sql $base->prepare("INSERT INTO imagenes(nombre,descripcion,url) VALUES(:nombre,:des,:url)");
                
                  if(
$sql->execute($this->arr))
                  {
                        
                  
                          echo 
"Imagen subida y almacenada correctamente";
                  }
                  else {
                          echo 
"Error";
                  }
                        } else {
                                echo 
"error";
                        }
                        }
                        else {
                          echo 
"Extension invalida";
                                   }
          
  
          }
  }
  class 
extension extends subir
  
{
  }
?>
PDO_bd.php :

Código PHP:
<?PHP if (! defined("EN_SURKAISER")) { exit("No se puede visializar los scripts"); }

/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*               http://www.surkaiser.com.es/
*
*                  $PDO_bd.php
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/


                         
class PDOConfig extends PDO {
                  
                         private 
$servidor;
                         private 
$BDS;
                         private 
$u;
                         private 
$clave;
                         private 
$tipo;
                        
                         public function 
__construct($t,$s,$b,$u,$c)
                         {
                        
                                          
                                                 
$this->tipo $t;

                 
$this->servidor $s;
                 
$this->BDS $b;
                 
$this->u   $u;  
                 
$this->clave $c;
                  switch(
$this->tipo)
                  {
                          case 
'mysql':
                          
parent::__construct('mysql:host='.$this->servidor.';dbname='.$this->BDS,$this->u,$this->clave);
                        
                          break;
                          case 
'oracle':
                          
parent::__construct('OCI:host='.$this->servidor.';dbname='.$this->BDS,$this->u,$this->clave);
                          break;
                          case 
'postgresql':
                          
parent::__construct('pgsql:host='.$this->servidor.';dbname='.$this->BDS,$this->u,$this->clave);
                          break;
                          default:
                          return 
false;
                          break;
                  }
                 }      
                         }
                        
          
          class 
bd extends PDOConfig
          
{
                  protected 
$sql;
                  protected 
$rows;
                  protected 
$pedir;
                        
                         public function 
numero($con)
                         {
                                 
$this->sql parent::prepare($con);
                                 
$this->sql->execute();
                                 return 
$this->sql->fetchColumn();
                         }
                         public function 
resultado($con)
                         {
                                 
$this->sql parent::prepare($con);
                                  
$this->sql->execute();
                                  return 
$this->sql;
                                 }
                          
                        
          }
?>
Ahora el config.php y despues lo configuraremos para que funcione :

Código PHP:
 <?PHP

/*
*                       SurKaiser
*                Aplicacion Subir Imagen Alpha-1.0
*               surkaiser.com.es
*
*                  $config.php
*         Ultima modificacion : 11/01/2012 by SurKaiser
*/

  //Definimos variable global
  
define("EN_SURKAISER",true);
   
//Incluye las operaciones necesarias.
                   
include_once("librerias/clases.php");
  
//Extensiones a usar
  
$cf_ex = array("jpg","jpeg","bmp","png","gif");
  
//Habilitamos el uso con BDS
  
$cf['usarBd'] = true;                 //Habilita el uso de Bd con imagenes
  //mysql
  
$cf['bd']['tipo']  =   'mysql'  ;   //Tipo de Servidor de BD's
  /*´
  //Si usas otra bd pon en comentario el default de 'mysql' o simplemente
  //cambialo por la lista mostrada mas abajo
  //DBS disponibles para usar en esta version :
  //Postgresql
  $cf['bd']['tipo']     = 'postgresql';
  //Oracle
  $cf['bd']['tipo']     = 'oracle';
  */
  
$cf['bd']['host']  = 'localhost';        //Servidor Bd
  
$cf['bd']['u']         = 'root'        ;         //Usuario de BD
  
$cf['bd']['clave'] = 'CHKDSKK1' ;        //Clave de la Bd
  
$cf['bd']['nbd']      = 'clases';        //Nombre de la Bd

          
$cf['dir']     = 'imagenes/';   //Directorio a usar
        
          //VARIABLES PARA LA CONEXION
          
define("TBD",  $cf['bd']['tipo']);
          
define("SER",  $cf['bd']['host']);
          
define("US",   $cf['bd']['u']);
          
define("CL",   $cf['bd']['clave']);
          
define("BD",   $cf['bd']['nbd']);
          
//PDO GLOBAL ((NO MODIFICAR EN CASO DE USAR BD))
                
$base = new bd(TBD,SER,BD,US,CL);
                        
  
                
?>
__________________
"El Conocimiento Es Poder
Mente Comunal - Diversidad Colectiva