PHP - No inserta imagen en BD

 
Vista:

No inserta imagen en BD

Publicado por HAL9000 (12 intervenciones) el 12/10/2006 18:21:25
Hola a todos.
Vereis tengo un formulario para insertar una imagen y su texto en una base de datos.
Consta de 3 campos:
id_noticia
texto(varchar255)
imagen(varchar255)
las imagenes se guardan en la carpeta del servidor y en la BD la ruta.
El problema que tengo es que el texto si que se guarda.Las imagenes también se
guardan en la carpeta pero en el campo de la BD no llega a aparecer la ruta.
He pobado de todo :haciendo las rutas más cortas,cambiando nombres a las carpetas
pero no hay forma que salga: os pongo el código del insert:
<?php

$noticia=$HTTP_POST_VARS["noticia"];

$dbh=mysql_connect ("ip", "user", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("BD");
$sql="INSERT INTO `portada` (`id_noticia`, `texto`, `imagen`) VALUES (null,'".$noticia."', '".$ruta_srv.$nombre"')";
$result=mysql_query($sql);



include('crop_imagen.php');

$extension=NULL;
switch($HTTP_POST_FILES['archivo']['type']){
case 'image/gif': $extension='.gif'; break;
case 'image/jpeg': $extension='.jpg'; break;
case 'image/jpg': $extension='.jpg'; break;
case 'image/pjpeg': $extension='.jpg'; break;
case 'image/png': $extension='.png'; break;
}

$ruta_srv="images/";
$nombre=md5($HTTP_POST_FILES['archivo']['name']).$extension;
$temporal=sprintf($ruta_srv."tmp/".$nombre); // ruta temporal

if(move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'],$temporal)){
sube_foto($temporal, 400, 300, $ruta_srv.$nombre, $extension);
@unlink($temporal);
}else{
echo "error.";
}

?>

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No inserta imagen en BD

Publicado por angelx (4 intervenciones) el 16/10/2006 21:59:27
Creo que este código te servira para guardar la ruta en la BD y la imagen en la carpeta Imagenes.

$rutaimagen = "Imagenes/";
$nameimagen = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];

if (!((strpos($tipo_archivo, "gif") || strpos ($tipo_archivo, "jpeg")) &&
($tamano_archivo < 200000))) {
echo "La extensión o el tamaño de los archivos no es correcta.
Se permiten archivos .gif o .jpg
Se permiten archivos de 200 Kb máximo.";
$nameimagen=NULL;
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],
$rutaimagen . $nameimagen)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias por la ayudo.nuevo problema

Publicado por Hal9000 (12 intervenciones) el 22/10/2006 12:58:52
muchas gracias por tu ayuda.
Pero ahora el problema es otro consigo que aparezca en la carpeta del
servidor pero no consigo que el insert lo meta en la BD.
Cual puede ser el problema te pongo el codigo.
$fecha=time();
$ficheros=date("dmYHis",$fecha).$extension;
$destino='../publicidad/'.$ficheros;
if (move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'],$destino)){
echo "El archivo ha sido cargado correctamente.";
$dbh=mysql_connect ("ip", "user", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("BD");
...

...
$sql=("insert into colaboradores(imagen) values('$destino')");
mysql_query($sql);

la bd tiene dos campos:
id_imagen int(11)
imagen(varchar255)

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar