Foros del Web » Programando para Internet » PHP »

Galeria De Fotos En Php

Estas en el tema de Galeria De Fotos En Php en el foro de PHP en Foros del Web. Quiero hacer una galeria de fotos en mi web tengo dos ejemplos uno que mueve los ficheros y otro que crea la base de datos ...
  #1 (permalink)  
Antiguo 13/11/2003, 16:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 20 años, 5 meses
Puntos: 1
Galeria De Fotos En Php

Quiero hacer una galeria de fotos en mi web tengo dos ejemplos uno que mueve los ficheros y otro que crea la base de datos y un visor

Quiero fundir los dos codigos en uno (mover.php e insertar.php) de tal modo que desde un formulario inserte la foto y los datos de ella en un BD y a su vez la mueva a una carpeta:

esta aqui todo http://www.xalma.net/gf.zip

form.php

<?php
if (isset($_GET['proceso'])){
echo $_GET['proceso']."<br>";
}
?>
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="mover.php o insertar.php " >

<table width="7%" border="0" align="center" cellpadding="5">
<tr>
<td><input type="file" name="archivo"></td>
</tr>
<tr>
<td align="right"> <input class="expe" type="submit" name="enviar" value="Aceptar"></td>
</tr>
</table>
</FORM>


insertar.php

<?php
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.
if (empty($_FILES['archivo']['name'])){
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}

//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("egadgets",$conexion) or die("No se puede seleccionar BD"); // egadgets es el nombre de la Base de datos .. por siaca.

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];

//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: visor.php"); // si ha ido todo bien
exit;
?>visor.php o buscador de fotos


mover.php

<?
# recogemeos en variables con el nombre de las usadas en el script anterior
# los valores transferidos por POST

$archivo_name= $_FILES['archivo']['name'];
$archivo_size= $_FILES['archivo']['size'];
$archivo_type= $_FILES['archivo']['type'];
$archivo= $_FILES['archivo']['tmp_name'];

$MAX_FILE_SIZE= $_POST['lim_tamano'];

if ($archivo != "none" AND $archivo_size != 0 AND $archivo_size<=$lim_tamano){

if (copy ($archivo, $archivo_name)) {
echo "<h2>Se ha transferido el archivo $archivo_name (mover_archivo.php)</h2>";


echo "<br>Su tamaño es: $archivo_size bytes<br>";
echo "<br>El fichero es tipo: $archivo_type <br>";
}else{
echo "<h2>No ha podido transferirse el fichero</h2>";
echo "<h3>Error interno del servidor.</h2>";

}
}else{
echo "<h2>No ha podido transferirse el fichero</h2>";
echo "<h3>su tamaño no puede exceder de $lim_tamano bytes</h2>";
}
?>


SOY MUY NOVATO ME LO TENEIS QUE EXPLICAR COMO SI FUESE UN NIÑO DE CUATRO AÑOS, GRACIAS

Última edición por concric; 13/11/2003 a las 16:32
  #2 (permalink)  
Antiguo 14/11/2003, 07:34
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
mmm... concric... no veo mucho la utilidad de mover el archivo a una carpeta y a la vez almacenarlo en la BD en binario.

Lo que tú quieres es poder subir archivos a tu site... puedes subir el archivo a una carpeta o puedes meterlo en la BD en binario... pero ¿las dos cosas a la vez?

Lo que se me ocurre que puedes hacer es subir el archivo a una carpeta y guardar en la BD la ruta a ese archivo para acceder a él.

Para eso utilizas casi exactamente igual el script que pones en "mover.php"... además del formulario inicial, claro.

Saludos

PD:Sé que no te he explicado prácticamente nada para lo que pides... pero tienes que tener claro qué quieres hacer (y para qué)... para poder ayudarte.
  #3 (permalink)  
Antiguo 14/11/2003, 11:30
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 20 años, 5 meses
Puntos: 1
tengo un desarrolo en binario pero cuando hago una llamada tipo src=ver.php?id=1 me sale todo un codigo y no una imagen no se el porque tu sabes como visualizarlo como una imagen.

Gracias
  #4 (permalink)  
Antiguo 14/11/2003, 14:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Puedes mirar http://www.forosdelweb.com/s/msg127775.html , hecho por Cluster.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 15/11/2003, 23:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
josemi... el código de Cluster es precisamente el que pone nuestro amigo concric en insertar.php (o sea que lo sacó de ahí)

concric... si lo que quieres es aprender a guardarlo en binario siguiendo el code de Cluster y todo te ha ido bien al insertar, pon el código que utilizas para ver la imagen... la línea completa. Debería ser así:
<img src="ver.php?id=nºregistro_archivo">

Y también tener correctamente el code de "ver.php" (revisa nuevamente el link que te puso josemi para comparar)...

Lo que no entiendas... pregúntalo, pero sería bueno que hagas las preguntas un poquito más concretas... aunque abras muchos temas, la idea es que cada tema que abras contenga un tema en particular...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:58.