Foros del Web » Programando para Internet » PHP »

Ayuda con las imágenes

Estas en el tema de Ayuda con las imágenes en el foro de PHP en Foros del Web. Hola a [email protected]: Estoy realizando una web en php y mysql para un grupo de investigación.Para cada miembro tengo que mostrar su información y su ...
  #1 (permalink)  
Antiguo 12/10/2004, 07:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 14 años, 1 mes
Puntos: 1
Ayuda con las imágenes

Hola a [email protected]:

Estoy realizando una web en php y mysql para un grupo de investigación.Para cada miembro tengo que mostrar su información y su foto en el margen superior derecho.
Un ejemplo de lo que tengo que hacer es esta dirección:
http://www.lcc.uma.es/servlet/LCC?-f...ficador=aguayo

Los datos los tengo todos en una base de datos y sé mostrarlos correctamente pero con las imágenes hasta ahora no tengo ningún tipo de experiencia.¿Cómo puedo conseguir mostrar la foto del investigador como en la dirección que os he puesto arriba?

Supuestamente el investigador a la hora de registrarse en el sistema debería de subir una foto suya(esto de subir al servidor sé hacerlo bien) pero después como hago para mostrarla y demás.

Por favor,si alguien pudiera decirme cómo hacer esto o si hay algún sistema de script que automatice lo que quiero,etc...
En definitiva,cualquier ayuda sobre las imágenes estaría eternamente agradecido.Muchísimas gracias a todos.Un saludo afectuoso
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #2 (permalink)  
Antiguo 12/10/2004, 08:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes dos métodos para gestionar archivos desde el servidor + tu BD.

1) Guardar sólo la referencia en tu BD (tabla y registro) del nombre del archivo que corresponde a esa imagen.

2) sube a tu BD completamente en binario la imagen/archivo.

La opción 1 es la más simple de implementar (y más cuando dices que sabes subir la imagen al servidor por médio de PHP en un "Upload HTTP" con los $_FILES .. y los campos file de HTML de un formulario).

Bien .. si ya sabes hacer esto .. crea el registro con los datos de tu formulario, en el campo que destines en tu tabla (BD) para la "imagen" .. que este sea de tipo string (un VARCHAR sobra) y ahí guarda el nombre del archivo que subistes que lo tendrás que tener en $_FILES['archivo']['name'] ..

Para mostrar tu "imagen" .. tan sólo debes hacer una consulta SQL a tu BD como lo haces ahora mismo y .. para la imagen usa un tag de imagen común HTML tipo:

<img src="<? echo $row['imagen'] ?>">

donde ese campo "imagen" sólo contiene el nombre de tu imagen .. Añade si lo requieres la ruta concatenada a esa variable de donde esté esa imagen (archivo) físicamente en el servidor ..

Un saludo,
  #3 (permalink)  
Antiguo 12/10/2004, 10:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 14 años, 1 mes
Puntos: 1
Muchas gracias cluster por tu contestación ,me servirá de mucho,pero aún se me plantean unas dudillas:

-¿Cómo puedo hacer para que aparezcan en la esquina superior derecha y en tamaño más o menos de foto normal?
-Si,por ejemplo,cuando el investigador se registra en el sistema y le da a la opción de subir foto personal y sube una foto por ejemplo de 640x480(muy grande para el tamaño que quiero) ,¿cómo puedo hacer para que no se vean en formato original y pueda controlar que todas se vean a un tamaño de 100x180 por ejemplo?

No sé si me explicado bien,lo que quiero controlar es que el tamaño de las imágenes se vean en el mismo tamaño,independientemente si el investigador sube fotos más pequeñas o más grandes del formato por defecto que quiero poner.

Muchas gracias Cluster,a ver si me pudieras resolver estas dudillas.Un saludo
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #4 (permalink)  
Antiguo 12/10/2004, 10:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El "lugar" donde muestres tu imagen .. como ya te comenté en principio es cosa de usar el tag HTML de imagen <img ... > como te indiqué donde lo requieras .. Eso ya es cosa de como estructures tu página y el HTML/CSS que uses por médio para diseñar tu página (tal vez tablas o CSS para tal fin).

En cuanto al tema de "reducir" (y hasta optimizar en peso esa imagen) para que te cuadre con el tamaño que quieres .. puedes usar PHP y sus librerías GD (debes verificar que tengas soporte para ello en tus servidores haciendo un phpinfo() y si corresponde instalarla) .. El tema en concreto se denomina "thumbnails" y en el foro tienes multitud de ejemplos (en las FAQ's de este foro tienes una función para tal fin creada ya).

Un saludo,
  #5 (permalink)  
Antiguo 17/10/2004, 12:40
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
hola,
alguien me puede decir porqué no me funciona este archivo para subir imagenes? Al enviar una imagen me saca el mensaje que tengo en el else de subearchivo.php(Ocurrió algún error al subir el fichero. No pudo guardarse.)
Estos son los archivos:

index.php
<html>
<head>
<title>Subir archivos</title>
</head>

<body>
<form action="http://localhost/pruebaimagenes/subearchivo.php" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
-----subearchivo.php

<html>
<head>
<title>Subiendo una nueva foto</title>
</head>

<body>
<h1>Subiendo un archivo</h1>
<br>
<div align="center">
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['C:\AppServ\www\pruebaimagenes\imagenes'], $nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}
else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>
<br>
<br>

<a href="index.php">Volver</a>
<br>
</div>
</body>
</html>
  #6 (permalink)  
Antiguo 18/10/2004, 09:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
vanax

Estás mezclando un montón de médios de acceso a variables externas a tus scripts .. mezclas los arrays superglobales $_POST .. etc con los no globales $HTTP_xxx_VARS .. deberías usar un sólo método.

Esto de aquí:
$HTTP_POST_FILES['userfile']['C:\AppServ\www\pruebaimagenes\imagenes'],

no es correcto .. En su defecto sería (por el contexto en el primer parámetro de tu funcion move_uploaded_file()).
$HTTP_POST_FILES['userfile']['tmp_name']

Pero mejor sería:
$_FILES['userfile']['tmp_name']

Por lo demás . .mejor será que hagas tu pregunta en un tema nuevo .

Un saludo,
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 11:19.