Foros del Web » Programando para Internet » PHP »

galeria de ayuda

Estas en el tema de galeria de ayuda en el foro de PHP en Foros del Web. tengo una consulta tengo este godigo que me guarda la descripcion y la foto en una base de datos . lo que quiero hacer y ...
  #1 (permalink)  
Antiguo 27/10/2006, 08:41
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
De acuerdo galeria de ayuda

tengo una consulta tengo este godigo que me guarda la descripcion y la foto en una base de datos .

lo que quiero hacer y no me resulta es dejar solo la descripcion en la base de tados y la foto grade y chica en una carpeta en el servidor
si algen me puede echar una mano agradecido , en este codigo estoy guardando la descripcion y la foto en la base de datos pero me queda muy pesada




<?php
// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
// Nivel de errores
error_reporting(E_ALL);
// Constantes
# Altura de el thumbnail en pÃ*xeles
define("ALTURA", 100);
# Nombre del archivo temporal del thumbnail
define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podrÃ*a ser:
// define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
# Servidor de base de datos
define("DBHOST", "localhost");
# nombre de la base de datos
define("DBNAME", "test");
# Usuario de base de datos
define("DBUSER", "root");
# Password de base de datos
define("DBPASSWORD", "");
// Mime types permitidos
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Variables de la foto
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
// Verificamos si el archivo es una imagen válida
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
// Creando el thumbnail
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
$img = imagecreatefromjpeg($tmp_name);
break;
case $mimetypes[2]:
$img = imagecreatefromgif($tmp_name);
break;
case $mimetypes[3]:
$img = imagecreatefrompng($tmp_name);
break;
}
$datos = getimagesize($tmp_name);
$ratio = ($datos[1]/ALTURA);
$ancho = round($datos[0]/$ratio);
$thumb = imagecreatetruecolor($ancho, ALTURA);
imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
imagejpeg($thumb, NAMETHUMB);
break;
case $mimetypes[2]:
imagegif($thumb, NAMETHUMB);
break;
case $mimetypes[3]:
imagepng($thumb, NAMETHUMB);
break;
}
// Extrae los contenidos de las fotos
# contenido de la foto original
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
# contenido del thumbnail
$fp = fopen(NAMETHUMB, "rb");
$tthumb = fread($fp, filesize(NAMETHUMB));
$tthumb = addslashes($tthumb);
fclose($fp);
// Borra archivos temporales si es que existen
@unlink($tmp_name);
@unlink(NAMETHUMB);
// Guardamos todo en la base de datos
#nombre de la foto
$nombre = $_POST["nombre"];
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));
$sql = "INSERT INTO tabla(nombre, foto, thumb, mime)
VALUES
('$nombre', '$tfoto', '$tthumb', '$type')";
mysql_query($sql, $link) or die(mysql_error($link));
echo "Fotos guardadas";
exit();
}
?>
  #2 (permalink)  
Antiguo 27/10/2006, 08:46
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Te pido de favor que te cheque este link http://www.forosdelweb.com/showthrea...389#post249389. Ahi se explica como mover un "archivo" al servidor.

Saludillos.
  #3 (permalink)  
Antiguo 27/10/2006, 09:01
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
lo que yo necesito no es mover un archivo en servidor si no es desde un formulario ingresar dos fotos una grande y una chica esa fotos que se guarden en una carpeta y la descripcion de la foto en una base de datos nose si me explico bien el codigo que puse lo hace todo pero en una base de datos y esa no es la ide solo texto ne la base de datos y las fotos en una carpeta
  #4 (permalink)  
Antiguo 27/10/2006, 09:57
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

No entendí lo que necesitas. Si lo pudieras explicar con un ejemplo te lo agradeceria mucho.

Saludillos.
  #5 (permalink)  
Antiguo 27/10/2006, 10:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por a83 Ver Mensaje
lo que yo necesito no es mover un archivo en servidor si no es desde un formulario ingresar dos fotos una grande y una chica esa fotos que se guarden en una carpeta y la descripcion de la foto en una base de datos nose si me explico bien el codigo que puse lo hace todo pero en una base de datos y esa no es la ide solo texto ne la base de datos y las fotos en una carpeta
Tal vez te confundío el término "mover" .. pero en definitiva es "subir" tus archivos al servidor desde el cliente.

Usarás un formulario HTML con dos campos "file" y todo lo procesará PHP para dejarlo en su ubicación definitva en el servidor.

El link que te dejarón explica como subir UN archivo .. para más . .puedes usar la misma técnica para el otro "file".

O bien . .usar la técnica de "multiples" archivos como indica la documentación oficial de PHP al respecto:

http://www.php.net/manual/es/features.file-upload.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 18:18.