Foros del Web » Programando para Internet » PHP »

no funciona uploader de imagenes

Estas en el tema de no funciona uploader de imagenes en el foro de PHP en Foros del Web. hola amigos de foros del web: tengo un problema con el uploader de imagenes. si pongo el codigo en un archivo creado solo para el ...
  #1 (permalink)  
Antiguo 27/03/2017, 11:32
 
Fecha de Ingreso: mayo-2003
Mensajes: 194
Antigüedad: 20 años, 11 meses
Puntos: 4
no funciona uploader de imagenes

hola amigos de foros del web:

tengo un problema con el uploader de imagenes. si pongo el codigo en un archivo creado solo para el uoloader funciona bien.

si pongo un include en una pagina diferente donde quiero que aparezca el uploader funciona bien si no esta dentro de ninguna celda.

pero si pongo el uploader dentro de una celda con un include deja de funcionar.


el poner el include dentro de la pagina donde quiero el uploader es por que tampoco pude hacerlo funcionar si pongo el codigo en la pagina donde quiero que este el uploader.

funcionamiento:
cuando subo una imagen coge la ruta del archivo y la guarda en la base de datos para poder llamarla luego.

este es el codigo de la pagina donde solo tengo el uploader:

Código PHP:
<?php


$link
=mysqli_connect('localhost','bd','psw','tabla') or die(mysqli_error());


?>



    
    <table align="center">
    <tr>
    <td>
    <form action="form_aviso_tecnico_planificado.php" method="POST" enctype="multipart/form-data">
        <label for="imagen"></label>
        
        <input type="file" name="imagen" id="imagen"/>
        <input type="submit" name="subir" value="Subir"/>
        
        
    </form>
    </td>
    </tr>
    </table>
    <?php



//compruebo que me estan enviando una imagen para guardarla
if (isset($_FILES["imagen"]))
{

    
//comprobamos si ha ocurrido un error.
    
if ($_FILES["imagen"]["error"] > 0)
    {
        echo 
"ha ocurrido un error";
    } 
    
    else 
    {
        
//ahora vamos a verificar si el tipo de archivo es un tipo de imagen permitido.
        //y que el tamano del archivo no exceda los 100kb
        
$permitidos = array("image/jpg""image/jpeg""image/gif""image/png");
        
$limite_kb 900;
    
        if (
in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb 1024)
        {
            
//esta es la ruta donde copiaremos la imagen
            //recuerden que deben crear un directorio con este mismo nombre
            //en el mismo lugar donde se encuentra el archivo subir.php
            
$ruta "imagenes/" $_FILES['imagen']['name'];
            
            
//comprobamos si este archivo existe para no volverlo a copiar.
            //pero si quieren pueden obviar esto si no es necesario.
            //o pueden darle otro nombre para que no sobreescriba el actual.
            
if (!file_exists($ruta))
            {
                
//aqui movemos el archivo desde la ruta temporal a nuestra ruta
                //usamos la variable $resultado para almacenar el resultado del proceso de mover el archivo
                //almacenara true o false
                
$resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
                
                if (
$resultado)
                {
                    echo 
"el archivo ha sido movido exitosamente";
                    
                    
$insert="INSERT INTO imagenes (ruta)
                    VALUES('$ruta')"
;
                    
$result=mysqli_query($link,$insert);
                } 
                else 
                {
                    echo 
"ocurrio un error al mover el archivo.";
                }
            } 
            else 
            {
                echo 
$_FILES['imagen']['name'] . ", este archivo existe";
            }
        } 
        else 
        {
            echo 
"archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes";
        }
        
        
    }
}







?>

y este parte del codigo donde quiero ponerlo y donde no funciona.

asi es con un include:

Código PHP:
<td valign="middle"><font color="WHITE"><b>Subir Foto</b></font></td>
    
      <td align="center" bgcolor="#FFFFFF"><? include("../imagen.php"); ?>    </td>  
      <td valign="middle"></td>
      <td valign="middle"></td>
      <td valign="middle"><font color="WHITE"><b></td>

y asi con el codigo completo en la pagina:

Código PHP:
<tr>
     <td valign="middle"><font color="WHITE"><b>Subir Foto</b></font></td>
    
      <td align="center" bgcolor="#FFFFFF"><? 


$link
=mysqli_connect('localhost','bd','psw','tabla') or die(mysqli_error());


?>



    
    <table align="center">
    <tr>
    <td>
    <form action="form_aviso_tecnico_planificado.php" method="POST" enctype="multipart/form-data">
        <label for="imagen"></label>
        
        <input type="file" name="imagen" id="imagen"/>
        <input type="submit" name="subir" value="Subir"/>
        
        
    </form>
    </td>
    </tr>
    </table>
    <?php



//compruebo que me estan enviando una imagen para guardarla
if (isset($_FILES["imagen"]))
{

    
//comprobamos si ha ocurrido un error.
    
if ($_FILES["imagen"]["error"] > 0)
    {
        echo 
"ha ocurrido un error";
    } 
    
    else 
    {
        
//ahora vamos a verificar si el tipo de archivo es un tipo de imagen permitido.
        //y que el tamano del archivo no exceda los 100kb
        
$permitidos = array("image/jpg""image/jpeg""image/gif""image/png");
        
$limite_kb 900;
    
        if (
in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb 1024)
        {
            
//esta es la ruta donde copiaremos la imagen
            //recuerden que deben crear un directorio con este mismo nombre
            //en el mismo lugar donde se encuentra el archivo subir.php
            
$ruta "imagenes/" $_FILES['imagen']['name'];
            
            
//comprobamos si este archivo existe para no volverlo a copiar.
            //pero si quieren pueden obviar esto si no es necesario.
            //o pueden darle otro nombre para que no sobreescriba el actual.
            
if (!file_exists($ruta))
            {
                
//aqui movemos el archivo desde la ruta temporal a nuestra ruta
                //usamos la variable $resultado para almacenar el resultado del proceso de mover el archivo
                //almacenara true o false
                
$resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
                
                if (
$resultado)
                {
                    echo 
"el archivo ha sido movido exitosamente";
                    
                    
$insert="INSERT INTO imagenes (ruta)
                    VALUES('$ruta')"
;
                    
$result=mysqli_query($link,$insert);
                } 
                else 
                {
                    echo 
"ocurrio un error al mover el archivo.";
                }
            } 
            else 
            {
                echo 
$_FILES['imagen']['name'] . ", este archivo existe";
            }
        } 
        else 
        {
            echo 
"archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes";
        }
        
        
    }
}

?>

os agradeceria una ayuda ya que no consigo ponerlo en funcionamiento y me he roto la cabeza haciendo pruebas con el include, con el codigo en la pagina etc...

otra cosa es que cuando he puesto el include dentro de la pagaina donde no funciona, pero que si funciona si el include esta fuera de las tablas, entonces la pagina se recarga y me desaparecen los datos de la pagina. eso creo que lo podria solucionar quitando el boton enviar del formulario de la pagina y dejando solo el boton de guardar que ya lleva esa pagina. o tambien volviendo a recoger las variables cuando se recargue la pagina por haber enviado las fotos.
  #2 (permalink)  
Antiguo 27/03/2017, 12:41
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: no funciona uploader de imagenes

Y el error que te da es?

No utilices las etiquetas cortas de php <? utiliza las normales siempre <?php
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 27/03/2017, 13:11
 
Fecha de Ingreso: mayo-2003
Mensajes: 194
Antigüedad: 20 años, 11 meses
Puntos: 4
Respuesta: no funciona uploader de imagenes

no me da error. sino que no llega a subir las imagenes.
  #4 (permalink)  
Antiguo 27/03/2017, 13:41
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: no funciona uploader de imagenes

Hola vegas,

Te recomiendo que depures el código para ver dónde te está fallando, tendrás que ir casi o línea a línea revisando lo que tienes en cada momento a ver dónde te falla.
  #5 (permalink)  
Antiguo 27/03/2017, 14:42
 
Fecha de Ingreso: mayo-2003
Mensajes: 194
Antigüedad: 20 años, 11 meses
Puntos: 4
Respuesta: no funciona uploader de imagenes

ok. gracias por las respuestas. debe ser alguna llave mal puesta o alguna cosa de esas.

pero bufff para ver todo el codigo me va a llevar una eternidad, ese archivo lleva la biblia casi en php.

un saludo.
  #6 (permalink)  
Antiguo 27/03/2017, 17:03
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: no funciona uploader de imagenes

el php que estas ocupando esta en el mismo directorio donde se encuentra la carpeta "imagenes" ????
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #7 (permalink)  
Antiguo 28/03/2017, 00:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 194
Antigüedad: 20 años, 11 meses
Puntos: 4
Respuesta: no funciona uploader de imagenes

Si. Lo tengo en el mismo directorio. aun asi lo volvere a probar a ver si es algun problema referente a eso.

Última edición por vegas; 28/03/2017 a las 02:50

Etiquetas: bd, formulario, imagenes, sql, uploader, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.