Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2012, 02:03
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 8 meses
Puntos: 65
Error intentando subir imágenes de prueba a la base de datos del servidor local y web

Hola.

Estoy haciendo pruebas para aprender a subir imágenes a un servidor web o local a una base en mysql.

Primero creo este formulario:

Código HTML:
<form action="recibe-imagenes-solo.php" method="post" name="f-insertar-tabla" enctype="multipart/form-data">
Imagen 1: <input type="file" name="imagen1" /><br />
Imagen 2: <input type="text" name="nombre"  /><br />
<input type="submit" name="enviar-tabla" value="Enviar" /><br /> 
Y luego en el archivo "recibe-imagenes-solo.php" tengo esto:

Código PHP:
<?php
session_start
();
require_once(
config.php");
conectar_base_de_datos();
$insertar ="
Insert into imagenes (imagen1nombrevalues ('$nombre_imagen1''".$_POST["nombre"]."')";
$imagen1=$_FILES["
imagen1"]["name"];
echo "
El nombre de la imagen1 es".$imagen1. "<br />";
$imagen1_tmp=$_FILES["
imagen1"]["tmp_name"];
echo "
El nombre o ruta temporal de la imagen1 es".$imagen1_tmp. "<br />";
$imagen1_tamano=$_FILES["
imagen1"]["size"];
echo "
El tamaño en bytes de la imagen1 es".$imagen1_tamano. "<br />";
$imagen1_tipo=$_FILES["
imagen1"]["type"];
echo "
El tipo de archivo de la imagen1 es".$imagen1_tipo. "<br />";
//Tamaño de la imagen en Kylobytes;
$kilobytes=$imagen1_tamano/1024;
//$maximo = 102400; //100Kb
echo "
El tamaño en kb es " .$kilobytes. "<br />";
if($imagen1_tipo == "
image/jpeg" or $imagen1_tipo == "image/gif" or $imagen1_tipo == "image/png")
    {
        echo "
La imagen es correcta<br />";
        //Preparo la extensión para el nombre de la imagen.
        switch($imagen1_tipo)
        {
            case'image/jpeg';
            $ext="
.jpg";
            break;
            case'image/gif';
            $ext="
.gif";
            break;
            case'image/png';
            $ext="
.png";
            break;
        }
        //Con esto le daría un nombre a la imagen enviada al servidor o con $_POST["
nombre_imagen"];
        $nombre_imagen1="
se pa ra";
        //En caso de que tenga espacios los sustituyo por un guión bajo
        $nombre_imagen1=str_replace(" ","
_", $nombre_imagen1);
        //Le añado la extensión 
        $nombre_imagen1=$nombre_imagen1.$ext;
        //echo $nombre_imagen;
        //La subo al archivo temporal de mi ordenador        
        copy($imagen1_tmp, "
$nombre_imagen1");        
        if($consulta=mysql_query($insertar))
        {
            echo "
Imagen subida";            
            echo '<img src="'.$nombre_imagen1.'" alt="" width="
374" height="300" />';            
        }
        else
        {
            echo "
Errorno se ha subido la imagen" .mysql_error();
        }
}
?>
Si lo miro en el servidor local con la url la imagen aparece pero luego en la base de datos solo carga el id_imagen y nombre, el campo imagen1 siempre aparece vacio.

También he probando incluyendo esta parte pero tampoco lo sube:

Código PHP:
if (is_uploaded_file($_FILES['imagen1']['tmp_name']))
        {
            echo 
"imagen subida";
        }
        else
        {
            echo 
"Error" .mysql_error();
        } 
¿Que me falta o estoy haciendo mal?

Saludos.