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> </td>
<td><input type="file" name="imagen" /></td>
</tr>
<tr>
<td> </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);
?>