No existe ninguna imagen

Como crear un sistema para subir imágenes usando Dreamweaver, PHP y MySQL (segunda parte)

Puedes ver la primera parte de este artículo aquí

Esta es la segunda parte del artículo “Como crear un sistema para subir imágenes usando Dreamweaver, PHP y MySQL“, donde explico como integrar la funcionalidad de subir archivos (principalmente imágenes) al uso de Dreamweaver. En este artículo explicaré como organizar las imágenes que han sido subidas al servidor y también añadiremos una manera de borrar tanto las imágenes físicas como también la entrada en la base de datos. Este es el resultado del último artículo. Vamos a usar lo que ha se ha hecho hasta ahora como base para esta segunda parte.

Primero trabajaremos con el CSS. Vamos a tomar prestado el CSS de la galería hoverbox sacado del blog de Nathan Smith. No utilizaremos la funcionalidad hover, sólo la forma de organizar las imágenes.  El CSS puede ser bajado aquí. Yo he modificado un poco el CSS conforme a mis necesidades. Este es el archivo final:

/* ///////////// Hoja de estilo CSS Subir archivos con Dreamweaver 2 //////////// */

/* general */

* {padding:0px;margin:0px;}

/* formulario */

#form1{
	padding: 10px;
	width:250px;
	margin:0 auto;
	background: #F5F5F5;
	border: 1px solid #CCCCCC;
}
#form1 label{display:block;font-weight:bold;padding:5px 0;}
.enviar{display:block; padding:10px 0 5px;text-align:center;}

/* --------- Hover box CSS --------- */

a
{
	text-decoration: none;
}

#container
{
	background: #fff;
	color: #777;
	margin: 0 auto;
	padding: 20px 50px 50px;
	position: relative;
	width: 640px;
}

h1
{
	background: inherit;
	border-bottom: 1px dashed #ccc;
	color: #933;
	font: 17px Georgia, serif;
	margin: 0 0 10px;
	padding: 0 0 5px;
	text-align: center;
}

p
{
	clear: both;
	font: 10px Verdana, sans-serif;
	text-align: center;
	margin-bottom:10px;
	text-align:center;
}

p a
{
	background: inherit;
	color: #993333;
	font-weight:bold;
}

p a:hover
{
	background: inherit;
	color: #000;
}

/* =Hoverbox Code
----------------------------------------------------------------------*/

.hoverbox
{
	cursor: default;
	list-style: none;
}

.hoverbox img
{
	background: #fff;
	border-color: #aaa #ccc #ddd #bbb;
	border-style: solid;
	border-width: 1px;
	color: inherit;
	padding: 2px;
	vertical-align: top;
	width: 100px;
	height: 75px;
}

.hoverbox li
{
	background: #eee;
	border-color: #ddd #bbb #aaa #ccc;
	border-style: solid;
	border-width: 1px;
	color: inherit;
	display: inline;
	float: left;
	margin: 3px;
	padding: 5px;
	position: relative;
}

.hoverbox .preview
{
	border-color: #000;
	width: 200px;
	height: 150px;
}

Para los thumbnails usaremos la librería PHPImagen de nuestro gran amigo okram. Con ésta podemos crear imágenes nuevas para nuestros thumbnails que se ajusten a cualquier tamaño sin que se distorsionen. Bajamos la librería de SourceForge y la incluimos en nuestro script. Para mayor organización voy a crear una carpeta llamanda “include” en cual incluiré las librerías necesarias si acaso necesitara alguna más. Para usar la librería debemos primero crear un archivo PHP el cual funcionará como nuestra imagen. Este archivo crea una instancia de la clase Imagen y a ésta le podemos pasar valores de como va a ser nuestra imagen. Este archivo lo he llamado img.php (comentado lo mejor que he podido) y lo he puesto en la raiz (root) del proyecto:

<!--?php <br ?-->
/**
 * @author Myokram
 * @copyright 2007
 */

//si se pide el source
if(isset($_GET['source'])) {
    highlight_file(__FILE__);
    exit;
}

//ruta de la imagen
$imagen = $_GET['file'];

//se busca el tamaño de la imagen
$tama_imag = getimagesize($imagen);
$ancho_img = $tama_imag[0];
$alto_img = $tama_imag[1];

//incluimos la librería
include_once "include/PHPImagen.lib.php";

//Instanciamos la clase
$imagen = new Imagen($imagen);

//si el ancho es mayor a alcho real de la imagen el ancho sera el ancho real
$nuevo_ancho = ($_GET['ancho'] //si el alto es mayor a alto real de la imagen el alto sera el ancho real
$nuevo_alto = ($_GET['alto'] resize($nuevo_ancho, $nuevo_alto, $cut);

//Si se pide que se baje la imagen
if(isset($_GET['download'])) $imagen->doDownload();
//si no se pide que se baje se muestra la imagen
else $imagen->doPrint();

?>

el root debería verse así:

Una vez tenemos los archivos en su sitio procedemos a alterar el html/php de la lista no-ordenada.  Primero que nada le agregamos la clase “hoverbox” para atar la lista al nuevo CSS. Luego usamos algunos párrafos (<p>) para mejor organización. Añadimos enlaces tanto a la imagen como uno nuevo que luego usaremos para borrar la imagen deseada. Este último enlace enviaría la variable “id” la cual será igual al id del archivo que queremos borrar y un pequeño código javascript para confirmar que la imagen está siendo borrada. También he añadido la clase “imagen_grande” al enlace de la imagen para poder atarla al javascript que usaremos para mostrar las imágenes más grandes. He decidido no incluir el nombre que el usuario decide ponerle a la imagen para poder tener mayor control del  diseño, aunque he dejado el nombre en el ALT Text:

<!--?php if ($totalRows_Recordset1 --> 0) { // Show if recordset not empty ?></pre>
&nbsp;
<ul class="hoverbox">
<ul class="hoverbox">
	<li>
<a class="imagen_grande" href="imagenes/<?php echo $row_Recordset1['archivo_archivos']; ?>"><img src="img.php?file=imagenes/<?php echo $row_Recordset1['archivo_archivos']; ?>&ancho=100&alto=75&cut" alt="<?php echo $row_Recordset1['nombre_archivos']; ?>" width="75" height="100" /></a>

<a onclick="javascript: if(!confirm('¿Está seguro?')) return false;" href="include/borrar.php?id=<?php echo $row_Recordset1['id_archivos']; ?>">borrar</a></li>
</ul>
</ul>
&nbsp;
<pre>
<!--?php  } // Show if recordset not empty ?-->

Como pueden ver he enlazado el thumbnail a la imagen original pero el “src” (source) del mismo lo he cambiado al archivo img.php y le he pasado varios parámetros GET. A continuación discuto los siguientes valores. El “Query string” GET es el siguiente: “file=imagenes/<?php echo $row_Recordset1['archivo_archivos']; ?>&amp;ancho=100&amp;alto=75&amp;cut“. Separamos los valores por el

&

, el cual es el entity HTML del &. Las variables son las siguientes:

  1. file – Es igual a la ruta de la imagen, en este caso la ruta (imagenes) más la variable del nombre del archivo sacada de nuestra base de datos.
  2. ancho – el ancho en pixeles deseado de la imagen, en este caso 100.
  3. alto – el altoen pixeles deseado de la imagen, en este caso 75.
  4. cut – se incluye si se quiere forzar la imagen a ser del tamaño especificado. el script “croppea” la imagen para llevarla a ese tamaño.

Para mostrar la imagen usaremos un lightbox cualquiera. En este caso he usado la versión 1.3.2 de  Fancybox, un plugin de jQuery el cual crea efectos de lightbox muy atractivos. Incluimos jQuery primero. Yo ya había incluido jquery y el UI de jquery desde google en la primera parte de este artículo. Bajamos Fancybox y agregamos la carpeta completa a nuestroa carpeta “js”, donde guardamos todo nuestro javascript. Fancybox también incluye los plugin de easing y de mousewheel, ambos para jQuery. No tenemos la necesidad de usar el de mousewheel en este tutorial pero sí el de easing. Incluimos tanto el CSS de Fancybox y los plugins de Fancybox y de easing al HTML. Al final yo quedé con algo así:



<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery.fancybox-1.3.2/fancybox/jquery.easing-1.3.pack.js"></script><script type="text/javascript" src="js/jquery.fancybox-1.3.2/fancybox/jquery.fancybox-1.3.2.pack.js"></script>
<script type="text/javascript" src="js/javascript.js"></script>

Luego creamos el javascript que se encargará de crear los lightboxes Fancybox. En el archivo “javascript.js” que está en el la carpeta “js” excribimos:

$(document).ready(function(){

	$('.imagen_grande').fancybox({
		'transitionIn':'elastic',
		'transitionOut':'elastic',
	});

})

Si todo sale bien podremos ver el efecto “lightbox” de Fancybox al darle clic a las imágenes. Fancybox se encarga de re-dimensionar la imagen de acuerdo a nuestra resolución, algo que no hace el plugin lightbox original.

Sólo nos falta habilitar el enlace de borrar imágenes. Para esto usaremos la función de dreamweaver de borrar record y la modificaremos un poco para que también se borre la imagen real. Hay dos formas de usar la función de borrar de dreamweaver: incluir el script en la misma página donde está lo que se quiere borrar o tener la funcionalidad en una página aparte. Yo voy a optar por la segunda opción en este caso.

Recuerden que este tutorial no tiene en cuenta ningún tipo de validación de usuario, por eso cualquier usuario podría usar el script de borrar para borrar cualquier record o archivo. Si usan este tipo de organización para un área administrativa recuerden tomar las medidas de validación de usuario necesarias.

Creamos un archivo PHP nuevo y lo llamamos “borrar.php” y lo incluimos en la carpeta “include”. Abrimos ese archivo, borramos todo el HTML y vamos al panel de “Comportamientos del servidor” (Server Behaviors). Le damos clic al símbolo de más (+) y escogemos “Eliminar registro”:

En la ventana que sale escogeremos “primary key value” en el primer campo y después  la conexión correspondiente, la tabla de archivos, el campo del id de la tabla (en este caso id_archivos), escogemos “numérico” (numeric), escogemos parámetro URL (ya que enviaremos la variable por medio del URL String), especificamos que la variable se va a llamar “id” y por último escogemos la página donde será enviado el usuario después de la operación (en este caso “../index.php”).

Con esto es suficiente para eliminar un record si enviamos el id correspondiente en el URL Query String. Ahora necesitamos agregar el código que borre la imagen real del disco duro. Para eso necesitamos saber el nombre del archivo que vamos a borrar. Por eso debemos hacer una consulta a la base de datos que devuelva el record que vamos a borrar antes de borrarlo. Para eso, hacemos un recorset de esta con un filtro de que el campo “id_archivos” del la tabla “archivos” sea igual a la variable URL “id”:

Con este recordset tendremos el siguiente código:


$colname_Recordset1 = "-1";
if (isset($_GET['id'])) {
  $colname_Recordset1 = $_GET['id'];
}

mysql_select_db($TU_BASE_DE_DATOS, $TU_CONECCION);
$query_Recordset1 = sprintf("SELECT * FROM archivos WHERE id_archivos = %s", GetSQLValueString($colname_Recordset1, "int"));
$Recordset1 = mysql_query($query_Recordset1, $TU_CONECCION) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

mysql_free_result($Recordset1);

Necesitamos mover ese código dentro de la condición del código producido por la función de borrar, osea, después de:

if ((isset($_GET['id'])) && ($_GET['id'] != "")) {

También necesitamos recuperar el nombre del archivo. Podemos arrastrarlo de el panel del Panel Vinculaciones (Bindings Panel). Lo ponemos antes de:

mysql_free_result($Recordset1);

Esto nos da la variable que contiene el nombre del archivo, en mi caso:

$row_Recordset1['archivo_archivos']

Lo mejor es crear una variable para almacenar el nombre y la ruta del archivo. Lo hacemos de esta forma:

//variable para almacenar el nobre del archivo
$nombre_archivo = '../imagenes/'.$row_Recordset1['archivo_archivos'];

Para borrar el archivo lo mejor es verificar primero si existe para no tener errores PHP. Para eso usamos la función file_exists(). Si existe entonces lo borramos con la función unlink():

//verificamos si el archivo existe. si existe lo borramos
if(file_exists($nombre_archivo)) unlink($nombre_archivo );

Ya con ésto la galería queda lista. Se le podría agregar también una paginación pero eso lo dejo a la discreción de ustedes. La última parte de este tutorial podría ser añadir una paginación de las de Dreamweaver, o una usando la librería PHPaging, también hecha por el gran okran, así como también hablar más acerca de las validaciones PHP y Javascript.

Puedes ver la primera parte de este artículo aquí

Be Sociable, Share!
  • Anónimo

    nada men no he podido resolver ese problema he hecho de todo y nada x favor si alguien lo a resuelto que diga cual es el error.. juaniquillo x que en el demo funciona. espero que nos puedas ayudar..

    • Anónimo

      Si no dices cual es el error no puedo ayudarte Carlos

  • Anónimo

    mira el problema es q cuando subo la imagen no se muestra en miniatura,tengo que hacer click para ver la imagen, es el problema que a tenido las otras personas, por favor si me puedes ayudar cual puedes ser el error y la posible solucion…
    estoy trabajando en un proyecto en la universidad y tu material me sirve..

    espero tu ayuda..

    • Anónimo

      Como le dije a Xema más abajo, verifica el source de las imágenes para ver si las variables se están pasasndo bien.

  • carlosma

    men el archivo img.php lo ejecuto solo y me aparece que no se puede mostrar la imagen x que el archivo tiene errores, men que errores puede tener ese archivo, que puede estar pasando que la imagen no se vea en miniatura, como la tienes en el demo.. he echo todo lo que dijistes a Xema y nada.. he buscado por mucho tiempo el error y nada men..

    • juaniquillo

      el archivo img.php no es posible verlo sin los parámetros. Por favor deja un ejemplo del código de los thumbmails como se ve en el navegador para ver si se están pasando los parámetros en el src.

  • carlosma

    men como asi los parametro en donde en que clase debe ir los parametros, no entiendo muy bien a lo que te refieres

    • juaniquillo

      leíste lo que te contesté? “Por favor deja un ejemplo del código de los thumbmails como se ve en el navegador”

  • carlosma

    no se si te refieres a esto, al codigo fuente que se ve en el navegador..
    Subir imágenes al servidor

    Imagenes

    nombre

    imagen

     


    borrar

    borrar

    borrar

    borrar

     

    • juaniquillo

      He editado el código que dejaste para mostraste lo que necesitaba. Con eso puedo ver que las variables se están enviando bien. Ahora intenta visualizar en el navegador el archivo img.php de esta forma:

      img.php?file=imagenes/1329341922_2.png&ancho=100&alto=75&cut

      y dime que si sale algún error php.

  • carlosma

    men sale que no puede mostrar esa direccion
    http://localhost/Galeria_imagenes2/img.php?file=imagenes/1329341922_2.png&ancho=100&alto=75&cut x que contiene errores, eso es lo que me muestra..

    • juaniquillo

      ¿No te da un error php? Aunque tampoco puedo ver que es lo que muestras. Podrías poder el código html dentro de una etiqueta “pre”, de esta manera:

      <pre> codigo </pre>

  • carlosma

    no men no me sale ningun error en ninguna linea de la clase img.php y tambien utilize la etiqueta pre y tambien me aparecio el mismo error anterior

    • juaniquillo

      Siento no haberme expresado bien. Las etiquetas “pre” eran necesarias para dejar código en el comentario, no para que las incluyeras en el archivo img. Si no tienes errores php puede ser que tu php esté configurado para que no muestre errores. Verifica si tu php está bien configurado para enseñar errores.

      También puede ser que la ruta de las imágenes esté incorrecta. Por casualidad, has cambiado el nombre de la carpeta donde se están almacenando las imágenes?

      • carlosma

        hola men gracias por tu ayuda de verdad tenia mal la ruta y ademas tenia que configurar my php.. bueno ya me corre perfecto,ademas le coloque la librería lightbox de jquery.. ahora quiero hacer un panel de administración de las imágenes, que me permita crear eventos y por cada evento una carpeta del evento y guardar las imágenes alli, también editar imagen , borrar, cambiar el nombre de la imagen, de los eventos.. y de mas funcionalidades.. aun no ce como hacerlo..me podrías ayudar.. a ver como hacer eso o si tienes algo que me pueda servir…saludos que estés bien

        • juaniquillo

          Lo siento pero yo solo doy apoyo en el blog a las cosas que están relacionadas a artículos escritos por mí. Esto lo hago para tener mas control del contenido.
          Actualmente estoy escribiendo como hacer un sistema CRUD sencillo usando DW. Me imagino que te puede ayudar en algo de lo que quieres pero no con la funcionalidad más específica.

          • carlosma

            bueno men,claro me sirve este es mi correo para qu me envies el material carlosma_17@hotmail.com, gracias men por tu ayuda..

  • sadelea

    PERDONA PERO NO SE DE DONDE ME VIENE EL ERROR  Y ME GUSTARIA HACER BIEN TU TUTO
    Notice: Use of undefined constant prueb3 – assumed ‘prueb3′ in C:xampphtdocsindex.php on line 90

    Notice: Undefined variable: sql in C:xampphtdocsindex.php on line 90

    Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:xampphtdocsindex.php on line 90

    Notice: Undefined variable: sql in C:xampphtdocsindex.php on line 92

    Warning: mysql_query() expects parameter 2 to be resource, null given in C:xampphtdocsindex.php on line 92 me viene estos errores y creo tenerlo todo bien agarradoEN EL ARCHIVO DE CONEXIONLAS LINEAS DEL ERROR
     mysql_select_db($database_sql, $sql);
     $Result1 = mysql_query($insertSQL,$sql) or die(mysql_error());
    }
    }

    mysql_select_db(prueb3, $sql);
    $query_Recordset1 = “SELECT * FROM archivos WHERE tipo_archivos = ‘general’ ORDER BY fecha_archivos DESC”;
    $Recordset1 = mysql_query($query_Recordset1, $sql) or die(mysql_error());
    y mi conexion al archivo <?php require_once('Connections/sql.php');

    PORFA QUE ALGUIEN ME AYUDE

    • juaniquillo

      Tienes dos problemas:
      1- Tu servidor está configurado para que muestre los “notices”, y
      2- Parece que las funciones de la base de datos no esta recibiendo tu conexión. Verifica que “prueb3″  y “$sql” contengan tu base de datos y tu conexión.

  • sadelea

    GRACIAS POR EL TUTO

  • sadelea

    gracias haora me sale casi del todo pero cuando voy ha borrar. Me dice el siguiente error

    Advertencia : require_once (o Conexiones de sql.php) [ function.include-once ]: failed to open stream: No existe el fichero o directorio en C: xampp htdocs include borrar.php on line 2 Fatal error : require_once () [ function.include ]: Failed opening required ‘Conexiones y sql.php’ (include_path = ‘;. C: xampp php PEAR’) en C: xampp htdocs include borrar.php en la línea 2 

    lo anterior lo arregle con

    global $conn,$select;//CONECTARSE$conn = mysql_connect(“localhost”, “root”, “”) or die (mysql_error());$select = mysql_select_db(“prueb3″, $conn);

    pero no se que se debe poner 

    yo pongo la ruta que pongo en el index pero me la rechaza

    • juaniquillo

      El problema parece ser de que no estas incluyendo el archivos ‘sql.php’ de manera correcta. Por lo visto tienes:

      require_once (o Conexiones de sql.php)

      Creo que necesita ser:

      require_once (‘sql.php’) 

      Y si el archivo de tu conexión está en un niver superior deberías inlcuirle la ruta correspondiente, por ejempo:

      require_once (‘../sql.php’)  

  • Redlinux

    yo necesito un que me muestre la foto ante de subirla

    • juaniquillo

      Eso no es posible ya que la foto no pude ser modificada a menos que se suba al servidor primero. Me imagino que deben existir maneras usando javascript aunque no conozco ninguna.

  • Jhon Paul Lievano

    buen dia, quisiera saber si tiene el codigo en php, para subir varias fotos, las cuales estan en una carpeta principal, la cual trae subcarpetas donde cada cual tiene un numero diferente de fotos, desearia poder obtener le codigo para que mediante php, me revise cuantas subcarpetas trae la carpeta prinicpla, y de cada subcarpeta cree una carpeta nueva en mi servidor y a esta les suba las fotos de cada subcarpeta respectivamente. Gracias.

    • juaniquillo

      No, no tengo un código para hacer exactamente lo que quieres. Esa funcionalidad que quieres parece bastante especializada. Yo te sugiero que pidas ayuda en el foro PHP de Foros del Web:
      http://www.forosdelweb.com/f18/

  • David

    Hermano, lo amo!!! me salvo la vida, un millos de gracias y bendiciones para usted!!!

  • Juan

    Hola Juaniquillo. Permitame felicitarle, por el aporte, funciona bien el firefox, pero el zoom de las fotos no funciona en chrome. Que debo hacer para que funcione igual en Chrome?. Muchas gracias por su atención.

  • http://www.facebook.com/jorge.r.varas Jorge Ramírez Varas

    gracias por tu arrticulo.. tienes mas sobre dreamweaver para leer?

    • juaniquillo

      Desde hace un año tengo planeado algunos más pero me estoy tardando bastante en sacarlos. En estos momentos quiero actualizar a CS6 antes de escribir algo nuevo

  • Espiler

    dabuti!!

  • Daniel

    estimado y si quisieramos que el archivo sea exclusivamente de un usuarios como podemos agregar los parametros?

  • carlos stones

    hey bro me hustaria saber como hacer para agregar registros a la fotos es que tengo un campo de descripcion y de autor .. que me tocaria hacer en el codigo ?

  • Fabian

    Hola crak.
    Primero que todo quiero felicitarte. Me gusta mucho la explicación que das para este tema en particular (llegue googleando y considero que es de las mejores respuestas que he encontrado en la nube.)

    Si bien, con este código que nos dejas, enseñas y permites descargar puedo avanzar mucho en lo que estoy realizando en mi trabajo, tengo algunos puntos que necesito con mucho énfasis y ahora te menciono para ver si me puedes guiar y ayudar.
    Resulta, que estoy haciendo un pequeño sistemita que a groso modo necesito que haga lo siguiente:
    1º Que una persona pueda subir de a varias imágenes (10 a 30 imágenes) con un sistema muy similar al tuyo. Donde haya un pequeño form como el que nos muestras pero que a diferencia del tuyo (el cual probé en el demo y solo se puede seleccionar de a una imagen) necesito que puedas seleccionar todas esas imágenes y se guarden todas al mismo tiempo.
    2º Un segundo form donde puedan subir un archivo tipo Excel. Eso es todo lo que puede hacer una persona (tengo pensado crear sessiones para que haya usuario y admin).
    3º El administrador (mi jefe) pueda entrar a otra seccion y ver por región las fotos que fueron subidas, con esto me refiero a generar una especie de planilla con filtros donde se puedan ver los archivos que subio ese determinado usuario, o por fecha las fotos que han sido subidas hoy, o saber si las fotos de una sucursal fueron subidas o no. En definitiva (esta es la parte que mas me cuesta explicar) Que si Usuario1 subio 10 fotos, Usuario2 subio 15 y Usuario 3 subio 7; yo pueda entrar a un pequeño sist admin, y ver QUE fotos subio el usuario1 y descargar sólo esas fotos, sin tocar lasfotosdel usuario 2 y 3. Espero se entienda.
    4º Asi como puedo descargarlas, poder visualizarlas.

    Si te fijas, es algo muy similar a lo que hace dropbox, pero estoy generando algo mas personalizado ya que tenemos a 1 persona por región de Chile que nos envian fotos y una pauta hoy en dia por mail, pero por ese medio el peso hace que se haga demasiado tedioso realizarlo, por ende quiero hacer algo mas sencillo y privado.

    Si me puedes ayudar, te lo agradeceria mucho.

    Saludos

    (pd: Yo solo se trabajar con PHP y Mysql. Sql si bien lo he usado, no lo domino tan bien como mysql.)

    Saludosy gracias nuevamente :)

  • Daniel Yepes

    Hola muchas Gracias por el tutorial, te cuento que me ha sido tan util que inclusive lo adapte para que no solo inserte imágenes sino que también para que las reemplace como quien dice no con el insert sino con el Update, tengo una sola inquietud, como puedo controlar que no suban sino 13 imagenes por decir, y que codigo puedo incorporarle para que no se repitan imagenes gracias

  • Hector

    Hola Juaniquillo,

    Tengo el mismo problema que casi todos… No se me ven los thumbnails.

    http://localhost/subir2/img.php?file=imagenes/1379579208_62.jpg&ancho=100&alto=75&cut

    Gracias y un saludo

    • Ingesoft23

      Aparentemente
      es la configuración de PHP, puedes colocar una “@” al inicio de la línea 111,
      eso funciono para mi.

      Saludos.

  • Andjeo Mianovag

    Hola, buen tuto, como haria para editar una foto del album, cambiarla por otra?

  • Guest

    Como edito una foto del album?

  • Carlos Stones

    esta muy bueno el tuto pero cuando usamos servidores dedicados se nos vuelve un problema por lo que consumimos mas en transito . seria mejor crear la miniatura y guardarla en el servidor he intentado hacerlo pero me ha generado muchos errores ! me gustaría que me colaboraras con eso !

  • Carlos Stones

    este es mi codigo pero quiero crear la miniatura dentro del mismo codigo y guardarla en el servidor ayudame con eso ! if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == “form1″)) {

    ////////////// Parte añadida 1 //////////////

    $imagen_disp_ar = array(‘jpg’, ‘jpeg’, ‘gif’, ‘png’);

    //carpteta donde vamos a guardar la imagen

    $carpeta = ‘../images/noticias/’;

    //recibimos el campo de imagen

    $imagen = $_FILES['imagen']['tmp_name'];

    //guardamos el nombre original de la imagen en una variable

    $nombrebre_orig = $_FILES['imagen']['name'];

    //el proximo codigo es para ver que extension es la imagen

    $array_nombre = explode(‘.’,$nombrebre_orig);

    $cuenta_arr_nombre = count($array_nombre);

    $extension = strtolower($array_nombre[--$cuenta_arr_nombre]);

    //validamos la extension

    if(!in_array($extension, $imagen_disp_ar)) $error = “No se a seleccionado ninguna imagen”;

    if(empty($error)){

    //creamos nuevo nombre para que tenga nombre unico

    $nombre_imagen = time().’_’.rand(0,100).’.’.$extension;

    //nombre nuevo con la carpeta

    $nombre_imagen_con_carpeta = $carpeta.$nombre_imagen;

    //por fin movemos el archivo a la carpeta de imagenes

    $mover_imagen = move_uploaded_file($imagen , $nombre_imagen_con_carpeta);

    //de damos permisos 777

    chmod($nombre_imagen_con_carpeta,0777);

    $dato1=$_POST['titulo'];

    $dato2=$_POST['descripcion'];

    $dato3=$_POST['texto'];

    // ahora le damos los espacios

    $titulo=nl2br($dato1);

    $description=nl2br($dato2);

    $texto=nl2br($dato3);

    // optenemos el formato de la fecha

    $fecha =date(“d/m/Y – “);

    $hora=date(‘H:i:s’);

    $tiempo = $fecha.$hora;

    ///////////////////////////////////////////

    $insertSQL = sprintf(“INSERT INTO noticias (categoria, titulo, descripcion, texto, fecha, imagen ) VALUES (%s, %s, %s, %s, %s, %s )”,

    GetSQLValueString($_POST['categoria'], “text”),

    GetSQLValueString($titulo, “text”),

    GetSQLValueString($description, “text”),

    GetSQLValueString($texto, “text”),

    ////////////// Parte añadida //////////////

    GetSQLValueString($tiempo, “text”),

    GetSQLValueString($nombre_imagen, “text”));

    ///////////////////////////////////////////

    ;

    mysql_select_db($database_coneccion, $coneccion);

    $Result1 = mysql_query($insertSQL, $coneccion) or die(mysql_error());

    }

    }