Comunidad de diseño web y desarrollo en internet online

Problemas al subir una imagen a una base de datos

Citar            
MensajeEscrito el 12 Nov 2007 07:51 pm
Hola que tal, tengo el problema que no puedo subir una imagen a una base de datos, tengo el siguiente codigo espero que alguien me pueda ayudar, de antemano mil gracias:

$conexion=mysql_connect("localhost","root","");
mysql_select_db("noticias",$conexion);
$imagen = addslashes(fread(fopen('$imagen', "r"), filesize('$imagen')));
$nombre = $_POST['nombre'];
$cuerpo = $_POST['cuerpo'];
$fecha = $_POST['fecha'];
$pie = $_POST['pie'];
$video = $_POST['video'];
mysql_query("INSERT INTO noticias (id_noticia,nombre,noticia,fecha,foto,piefoto,video) VALUES ('#','$nombre','$cuerpo','$fecha','$imagen','$pie','$video')");

Lo curioso es que este codigo localmente si funciona a la perfeccion pero cuando lo pongo a funcionar en un hosting que tengo contratado me marca los siguientes errores

Warning: fopen() [function.fopen]: Unable to access $imagen in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: fopen($imagen) [function.fopen]: failed to open stream: No such file or directory in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: filesize() [function.filesize]: Stat failed for $imagen (errno=2 - No such file or directory) in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: fread(): supplied argument is not a valid stream resource in /home/difma300/public_html/administrador/altanoticia.php on line 32

Help meeee!!!!!!!!!!!!!!!

Por kyo_gfm

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 12 Nov 2007 08:26 pm
Quita las comillas que encierran a $imagen.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Nov 2007 09:58 pm
Hola que tal, ya lo hice pero no me resulto :( me siguen marcando los mismo errores:

Warning: fopen() [function.fopen]: Unable to access C:\\Documents and Settings\\Orlando Ayala\\Desktop\\juegosdif.jpg in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: fopen(C:\\Documents and Settings\\Orlando Ayala\\Desktop\\juegosdif.jpg) [function.fopen]: failed to open stream: No such file or directory in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: filesize() [function.filesize]: Stat failed for C:\\Documents and Settings\\Orlando Ayala\\Desktop\\juegosdif.jpg (errno=2 - No such file or directory) in /home/difma300/public_html/administrador/altanoticia.php on line 32

Warning: fread(): supplied argument is not a valid stream resource in /home/difma300/public_html/administrador/altanoticia.php on line 32

Aqui lo curioso es que todos los demas datos de la noticia se agregan excepto la foto :(

Por kyo_gfm

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 12 Nov 2007 10:04 pm
Ahora lo que hice fue esto:

$conexion=mysql_connect("localhost","difma300_dif","difmzo");
$imagen3=$_FILES['imagen']['name'];
mysql_select_db("difma300_difmanzanillo",$conexion);
$imagen2 = addslashes(fread(fopen($imagen3, "r"), filesize($imagen3)));
$nombre = $_POST['nombre'];
$cuerpo = $_POST['cuerpo'];
$fecha = $_POST['fecha'];
$pie = $_POST['pie'];
$video = $_POST['video'];
mysql_query("INSERT INTO noticias (id_noticia,nombre,noticia,fecha,foto,piefoto,video) VALUES ('#','$nombre','$cuerpo','$fecha','$imagen2','$pie','$video')");

Y me marca ya nada mas este error, alguien me puede ayudar?

Warning: fread(): supplied argument is not a valid stream resource in /home/difma300/public_html/administrador/altanoticia.php on line 33

Por kyo_gfm

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Nov 2007 09:10 am
¿Intentas apuntar a un archivo que supuestamente ha sido subido al servidor usando un formulario?, si es así, $_FILES['imagen']['name'] solo contiene el nombre del archivo original y no el lugar donde está en el servidor. Ese dato está en $_FILES['imagen']['tmp_name'] el cual tienes que mover a un directorio de tu home (o el home mismo) usando copy();
Algo así:

Código :

$tmp_name = $_FILES['imagen']['tmp_name'];
$name = "./".$_FILES['imagen']["name'];
if (is_uploaded_file($tmp_name)) {
   if (!copy($tmp_name,$name)) { echo "No se pudo copiar el archivo."; exit; }
}
else { echo "No se pudo mover el archivo ".$tmp_name; exit; }
// Continua tu código aquí, en $name tienes el path al archivo en el servidor, lo que en tu código vendría a ser $imagen3

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Nov 2007 03:49 pm
:D
Muchisimas Gracias!!!!!!!!!!!!!!!!!!!! por tu ayuda.
El codigo me sirvio a la perfeccion, ahora nada mas me voy a poner a investigar para que despues de que se copie la imagen al servidor y una vez que ya este dada de alta en la base de datos, se borre del servidor para que no ocupe espacio.

Pero por el momento tu codigo me fue de gran ayuda, gracias de nuez

Por kyo_gfm

6 de clabLevel



Genero:Masculino  

msie

 

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