Foros del Web » Programando para Internet » PHP »

insertar fotos

Estas en el tema de insertar fotos en el foro de PHP en Foros del Web. hola, quiero que los usuarios puedan insertar sus fotos en mi pagina . Pero lo que no se, como guardarla en BD y despues insertarla ...
  #1 (permalink)  
Antiguo 17/06/2003, 03:20
 
Fecha de Ingreso: septiembre-2002
Mensajes: 6
Antigüedad: 21 años, 7 meses
Puntos: 0
insertar fotos

hola,
quiero que los usuarios puedan insertar sus fotos en mi pagina .
Pero lo que no se, como guardarla en BD y despues insertarla en pagina.
Por favor contestarme , para decirme si se puede hacer o no..
Porque llevo ya una semana con ello.
Gracias a todos
  #2 (permalink)  
Antiguo 17/06/2003, 03:51
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Se puede.

Si lo que pretendes es que mediante un formulario los usuarios envían sus fotos a una carpeta de destino que tienes puesta en el servidor esta es la fórmula:

FORMULARIO:
Código PHP:
# Imprescindible que sea multipart/form-data
<form action="xxx.php" method="post" enctype="multipart/form-data">
# Para no liarte llama al campo "archivo" o modificalo aqui y en proceso de guardado
<input name="archivo" type="file">
</
form
PROCESAR FOTO:
Código PHP:
$extension explode(".",$archivo_name); 
$num count($extension)-1
# Comprobamos que la imagen sea .jpg (modificable)
if($extension[$num] != "jpg") { 
echo 
"el formato de archivo no es valido, solo .jpg"; }
                
#comprobamos que no pese más de 30 KB (modificable)
    
elseif($archivo_size 30000)     {
    echo 
"el archivo supera los 30kb"; }
                                
#fundamental: debes indicar en qué carpeta s deben guardar las imágenes. Mucho cuidado con no equivocarte de carpeta. 
        
elseif(!copy($archivo"../fotos/$id_foto.".$extension[$num])) { 
        echo 
"error al copiar el archivo"; } 
            else { 

header("Location: conseguido.php"); 
Y ya está.

Si lo que buscas es meter la foto en código binario en tu DB, Cluster posteó la solución en las FAQS de PHP.

Suerte
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #3 (permalink)  
Antiguo 17/06/2003, 10:13
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 22 años
Puntos: 2
ferent el lo q quiere decir es insertar la imagen en la BD MYSQL, y es muy sencillo:

Formulario:
Código:
<form method=post action=enviar.php>
<input type=file name=form_data><br>
<input type=submit value=enviar></form>
enviar.php

Código PHP:
//CONEXION BD MYSQL

$data addslashes(fread(fopen($form_data"r"), filesize($form_data)));

mysql_query("INSERT INTO tabla (imagen,filetype)
 VALUES ('$imagen','$form_data_type')"
); 
imagen.php
Código PHP:
if($id) {
//CONEXION BD MYSQL

    
$hazquery "select imagen,filetype from TABLA where id LIKE '$id'";
    
$resultexe = @MYSQL_QUERY($hazquery);

    
$data = @MYSQL_RESULT($resultexe,0,"imagen");
    
$type = @MYSQL_RESULT($resultexe,0,"filetype");

    
Header"Content-type: $type");
    echo 
$data;

}; 
ver_imagenes_por_usuario.php

Código PHP:
//conexion bd mysql
//mysql query a la tabla

while($row=mysql_fetch_array($query)){
echo 
"
<img src=\"imagen.php?id="
.$row[id]."\" border=0>";

La tabla debe contener un campo [id] auto_increment, primaria, etc..

y listo;) c/usuario puede asi subir su foto
Salu2
__________________
http://www.chorcha.com
  #4 (permalink)  
Antiguo 26/05/2009, 16:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: insertar fotos

Cita:
Iniciado por ferent Ver Mensaje
Se puede.

Si lo que pretendes es que mediante un formulario los usuarios envían sus fotos a una carpeta de destino que tienes puesta en el servidor esta es la fórmula:

FORMULARIO:
Código PHP:
# Imprescindible que sea multipart/form-data
<form action="xxx.php" method="post" enctype="multipart/form-data">
# Para no liarte llama al campo "archivo" o modificalo aqui y en proceso de guardado
<input name="archivo" type="file">
</
form
PROCESAR FOTO:
Código PHP:
$extension explode(".",$archivo_name); 
$num count($extension)-1
# Comprobamos que la imagen sea .jpg (modificable)
if($extension[$num] != "jpg") { 
echo 
"el formato de archivo no es valido, solo .jpg"; }
                
#comprobamos que no pese más de 30 KB (modificable)
    
elseif($archivo_size 30000)     {
    echo 
"el archivo supera los 30kb"; }
                                
#fundamental: debes indicar en qué carpeta s deben guardar las imágenes. Mucho cuidado con no equivocarte de carpeta. 
        
elseif(!copy($archivo"../fotos/$id_foto.".$extension[$num])) { 
        echo 
"error al copiar el archivo"; } 
            else { 

header("Location: conseguido.php"); 
Y ya está.

Si lo que buscas es meter la foto en código binario en tu DB, Cluster posteó la solución en las FAQS de PHP.

Suerte

Estimado yo estoy haciendo tambien esta parte de insertar fotos, me puedes ayudar indicandome paso a paso lo que debo hacer, jamas e hecho inserciones con respecto a fotos.
  #5 (permalink)  
Antiguo 27/05/2009, 00:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: insertar fotos

Sugerencia, solo toco este punto y es que no recomiendo insertar la foto a la base de datos, sino más bien agregarla a un directorio en el servidor. Solo comento. Si cambias de opinion en cuanto a añadirla al servidor en vez de la base de datos. Me dejas saber para ayudarte con un codigo que puedas insertar y luego añadir a la base de datos el link donde se encuentra la foto.
  #6 (permalink)  
Antiguo 27/05/2009, 09:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Mensaje Respuesta: insertar fotos

Estimado he realizado investigacion y me he dado cuenta que tiene razon, no es recomendable insertar fotos directamente al server.

Ayudame indicando paso a paso como debo insertar, consultar fotos de la forma como me lo recomiendas. Me gustaria saber
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 13:13.