Foros del Web » Programando para Internet » PHP »

Guardar imagen en la bd y en el servidor

Estas en el tema de Guardar imagen en la bd y en el servidor en el foro de PHP en Foros del Web. Hola, tengo un problemita con un form que me pasaron para que adapte.. en el se introducen los productos de una empresa (subcategoria, titulo, desc, ...
  #1 (permalink)  
Antiguo 12/04/2007, 06:28
 
Fecha de Ingreso: mayo-2005
Mensajes: 94
Antigüedad: 18 años, 11 meses
Puntos: 0
Guardar imagen en la bd y en el servidor

Hola, tengo un problemita con un form que me pasaron para que adapte.. en el se introducen los productos de una empresa (subcategoria, titulo, desc, precio,foto y activo). Los datos se guardan bien, y creo que la foto en la bd tambien, pero nose graba en el servidor... entonces le dice a la BD que esta en /fotos/ y no la copia en ese directorio... Les dejo el codigo que tengo.

El form empieza asi
Código PHP:
        <table cellspacing=0 cellpadding=0 width=98border=0><form name="formulario" action="add.php" method="post" enctype="multipart/form-data" onSubmit="return Validar();"
y la parte de la foto es asi
Código PHP:
          <tr
            <
td height=14 class="texto_normal">FOTO*</td>
            <
td height=14 class="texto_normal"><input name="fotog" type="file" class="caja_bordenegro" id="fotog3"></td>
          </
tr
El add.php lo tengo asi:
Código PHP:
<? 
error_reporting
(E_ALL); 
require(
"includes/conn.php");
$link Conectarse();
$data date ("d-m-y-H-i-s");

if(
$fotog_name !=""){
    
$strs explode(".",$fotog_name);
    
$countcount($strs);
    
$extension ".".$strs[$count-1];
    
$foto2$data."g".$extension;
    @
copy($fotog,"../../fotos/$foto2");
}
$SQL="INSERT INTO productos VALUES ('', $subcategoria, '$titulo', '$cuerpo', '$precio', '$foto2', $activo )";
mysql_query($SQL$link);
if (
mysql_errno($link)==0){
            }else{ 
        if (
mysql_errno($link)==1062){echo "<h2>No ha podido añadirse el registro<br>Ya existe un campo</h2>"
           }else{  
            
$numerror=mysql_errno($link); 
           
$descrerror=mysql_error($link); 
            echo 
"Se ha producido un error nº $numerror que corresponde a: $descrerror  <br>"
        } 



# cerramos la conexion 

 
mysql_close();  

?>
<script>
alert ('Se ha añadido un Producto');
window.document.location.href="index.php";
</script>
Por ultimo, mi conn.php es asi:
Código PHP:
<?php
function Conectarse() 

   if (!
$link mysql_connect("localhost""++++""*****")) 
   { 
      echo 
"Error conectando a la base de datos."
      exit(); 
   } 
   if (!
mysql_select_db("judeofobia",$link)) 
   { 
      echo 
"Error seleccionando la base de datos."
      exit(); 
   } 
   return 
$link

function 
cambianormal($fecha){ 
    
ereg"([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})"$fecha$mifecha); 
    
$lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1]; 
    return 
$lafecha
}
function 
cambiamysql($fecha){ 
    
ereg"([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})"$fecha$mifecha); 
    
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1]; 
    return 
$lafecha
}
$link=Conectarse();
?>
Espero su respuesta, gracias!!!

Última edición por jonyjm; 12/04/2007 a las 08:13
  #2 (permalink)  
Antiguo 12/04/2007, 07:45
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Guardar imagen en la bd y en el servidor

haber la foto 1 o se graba en la base de datos como campo blob o bien la guardas en el servidor y solo guardas el nombre de la foto en la base de datos como tipo varchar, yo prefiero este ultimo ya que en su tiempo guardar las fotos en la base de datos me dio sus problemas pero bueno...

tu archivo conn.php lo encontre inesesario por lo demas nunca pongas tus datos como contraseñas y eso en un foro :)

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 12/04/2007, 08:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 94
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Guardar imagen en la bd y en el servidor

ok.. no me di cuenta lo de la clave.. bueno, lo que yo estoy haciendo es lo q dices.. tengo un campo vchar donde guardo la direccion. Eso va bien, porque al sacarlo, me aparece bien la direccion.. el problema es copiar la imagen a la bd...

Tengo la instruccion

Código PHP:
$data date ("d-m-y-H-i-s");
$strs explode(".",$fotog_name);
$countcount($strs);
$extension ".".$strs[$count-1];
$foto2$data."g".$extension;
@
copy($fotog,"/fotos/$foto2"); 
Que lo que hace es crear una variable foto2, con el nombre del archivo que es la fecha y su extension. Y la funcion copy que deberia copiar el archivo fotog en la carpeta /fotos/ con el nombre que hay en la variable foto2....

Foto2 lo crea ok, porque en la bd se ve que esta bien. Pero no la funcion copy no se ejecuta bien.. alguien sabe porque no me lo copia? tengo que tener la carpeta creada? con algun permiso en especial?... Saludos
  #4 (permalink)  
Antiguo 12/04/2007, 09:26
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Guardar imagen en la bd y en el servidor

Hola, proba colocando la ruta completa a donde vas a guardar las fotos, por ejemplo:
copy($fotog,"C:/.../fotos/".$foto2);
__________________
->Aprender es un proceso que incluye el error..
  #5 (permalink)  
Antiguo 12/04/2007, 09:32
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Guardar imagen en la bd y en el servidor

nop nop nop eso no se hace las rutas completas no sirven ?
recuerda que tu servidor es linux no windows pa el C: no existe
que tipo es el campo donde quieres emter la foto???
bueno lo otro si tienes todo en base de datos imposible con rutas por que
no hay rutas
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 12/04/2007, 10:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Guardar imagen en la bd y en el servidor

Usa:
Código PHP:
$data date ("d-m-y-H-i-s");
$strs explode(".",$_FILES['fotog']['name']);
$countcount($strs);
$extension ".".$strs[$count-1];
$foto2$data."g".$extension;
@
move_uploaded_file$_FILES['fotog']['tmp_name'], "fotos/$foto2" ); 
  #7 (permalink)  
Antiguo 12/04/2007, 12:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 94
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Guardar imagen en la bd y en el servidor

Gracias a todos.. ya esta solucionado! :D

Saludosss
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:05.