Comunidad de diseño web y desarrollo en internet online

subir una imagen con php + mysql

Citar            
MensajeEscrito el 13 Jul 2007 04:51 am
hola tengo un problema necesito guardar en la BD ciertos campos entre ellos un campo de una imagen tengo un codigo pero me sale error al ejecutarlo el codigo es el sgte:


<?
$db=mysql_connect ("localhost", "usuario", "pass") or die ('ERROR ' . mysql_error());
mysql_select_db ("BD");
$nombre = $_POST["nombre"];
$nombre_archivo = "fotos/".$_FILES['imagen']['name'];
$tipo_archivo = $_FILES['imagen']['type'];
$tamano_archivo = $_FILES['imagen']['size'];
//compruebo si las características del archivo son las que deseo
if($nombre_archivo!='fotos/')
{
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 200000)))
{
//el tamaño o la extension del archivo no son correctas se pone error=1
$error=1;
}
else
{
if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo))
{
// El archivo ha sido cargado con éxito
}
else
{
//No se ha podido guardar el archivo en el servidor error=2
$error=2;
}
}
}
// Comprueba si tiene algun error
if ($error==1)
{
echo "<script> alert (\"El archivo no debe tener un tamaño superior a 200 KB y deber ser JPG o GIF\"); </script>";
echo "<script language=Javascript> location.href=\"subir.html\"; </script>";
die();
}
elseif ($error==2)
{
echo "<script> alert (\"No se ha podido guardar la imagen en el SERVIDOR \"); </script>";
echo "<script language=Javascript> location.href=\"subir.html\"; </script>";
die();
}
//si no hay errores se inserta en la TABLA
else{
mysql_query($db,"insert into usuario (nombre,imagen) values ('$nombre','$nombre_archivo')");

/*echo "<script>window.location = './index.php';</script>";*/
}
header ("Location: ./subir.html");
exit;


/*$query = "insert into usuario(nombre,imagen) values('$nombre','$imagen')";
mysql_query($db,$query);*/

?>


los errores q sales son:
Warning: move_uploaded_file(fotos/imagen1.jpg): failed to open stream: Permission denied in /home/choborra/public_html/guardar.php on line 27

Warning: move_uploaded_file(): Unable to move '/tmp/phpSNa1q9' to 'fotos/imagen1.jpg' in /home/choborra/public_html/guardar.php on line 27
error


la linea 27 es esta
if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo))

otra cosa dentro del codigo las fotos se deberian guardar dentro de una carpeta "fotos" esa carpeta donde lo creo dentro de mi .public_html/
osea quedaria asi .public_html/fotos/ y aqui van mis imagenes

Por LaNaVi

22 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Jul 2007 03:01 pm
la carpeta deberia quedar al mismo nivel que el script, es decir si tienes el php en public_html ahi creas la carpeta, eso porque asi lo tienes en codigo y parece mas facil explicarte eso que algo de rutas relativas xD

ahora el error pueden ser los permisos, asegurate que los archivos en tu server tengan los permisos apropiados

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 13 Jul 2007 03:45 pm
ya cree mi carpeta fotos/ pero el error persiste otro problema como me dices pueden ser los permisos no si si esta correcto esto pero trate de darle permiso antes de esta linea if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo)); osea quedaria de esta manera:


chmod($nombre_archivo,0777); // donde $nombre_archivo = "fotos/".$_FILES['imagen']['name']
if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo));


pero el error persiste aun :(

Por LaNaVi

22 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Jul 2007 03:53 pm
Y bueno en la linea donde puse el chmod me sale un error mas es el sgte


warning: chmod(): No such file or directory in /home/choborra/public_html/guardar.php on line 19

Por LaNaVi

22 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Jul 2007 04:39 pm
no, los permisos a los que me referia son de la carpeta, no puedes intentar modificar los permisos del archivo puesto que aun no lo has subido...

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 13 Jul 2007 07:10 pm
Gracias ese era mi error xD... gracias por tu ayuda Prozac!!!
ahora para recuperar la imagen hago lo sgte:


$dbh=mysql_connect ("localhost", "usuarioi", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("bd");

$query = "select * from usuario";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo "<table>";
echo "<tr>";
echo "<td>";
echo $row[1];
echo "</td>";

echo "<td>";
echo "<img src=' ". $row[2] ."' width='303' height='204'>";
echo "</td>";

echo "</tr>";
echo "</table>";


bueno si me carga la imagen ahora pregunto existe otra forma de hacerlo? que sea con archivos u algo diferente? .. gracias de antemano

Por LaNaVi

22 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.