Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/12/2008, 13:23
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema en guardar una imagen en Mysql y PHP

Primero que nada, para que utilizas PHP para imprimir el formulario:
No tienes que usar PHP para imprimir ese formulario.

Código PHP:
<html>
<head>
<head>

<title>Index</title>

</head>
<body>
<?php

echo "<form name=\"form1\" enctype='multipart/form-data' action=\"save_producto.php\">";

echo 
"Codigo<br>";
echo 
"<input type=\"text\" name=\"codigo\" value=\"\"><br><br>";
echo 
"Nombre<br>";
echo 
"<input type=\"text\" name=\"nombre\" value=\"\"><br><br>";
echo 
"Imagen<br>";
echo 
"<input type=\"file\" name=\"imagen\"><br><br>";
echo 
"</select><br>";
echo 
"<input type=\"submit\" value=\"Enviar\" onclick=\"javascript: valida(); return false\>";
echo 
"</form>";


?>

</body>
</html>
2. No puedes recuperar el valor de un campo FILE por medio de $_POST.

Código PHP:
$imagen=$_POST['imagen']; 
3. Defines los nombres como imagen_n e imagen_f, pero usas img_n en tu IF.

Código PHP:
$imagen_n=$_FILES['imagen']['name']; // <-- dale un vistazo a los nombres de las variables
$imagen_f=$_FILES['imagen']['tmp_name'];

$fileName '';
$val time();

//Sube videos e imagen
if ($img_n != '') { // <-- Aqui usas una variable totalmente diferente 
Por eso no copia la imagen.

4. Recuerda que guardas la imagen en $dir.$filename, y solo guardas el filename en tu consulta:

Código PHP:
$sql="INSERT INTO producto Values ($codigo,'$nombre','$filename')"
5. Antes de darle la extension .jpg, asegurate de que el archivo es un JPEG. Puedes usar $_FILES['imagen']['type'], eso devuelve el MIME type de el archivo subido, si el archivo es jpg, aparecera: image/jpeg

Código PHP:
$fileName $val.".jpg"
6. No uses copy, move_uploaded_file() es mas seguro:

Código PHP:
@copy($imagen_f$dir.$filename);