Do not upload image to MySQL PHP database

0

The following code does not work for uploading an image to a database.

HTML Code:

<label for="imagen">Imagen:</label>
    <input type="file" multiple="multiple" name="imagen[]" required /> 

PHP Code:

   //Subir el nombre de una imagen. $_FILES: Variables de subida de ficheros HTTP.
        if (!isset($_FILES["imagen"]) || $_FILES["imagen"]["error"] > 0){
            echo "<script type='text/javascript'>alert('Ha ocurrido un error. Inténtelo de nuevo...');</script>";
            //echo "Ha ocurrido un error. Inténtelo de nuevo...";
        }else{
            $cantidad=count($_FILES["imagen"]["tmp_name"]);
                for ($i=0; $i<$cantidad; $i++){
                //Comprobamos si la extensión el fichero es de tipo imagen y menor de 16MB.
                $permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
                $limite_kb = 16384;
                //Si la extensión del fichero a subir, coincide con la de permitidos...
                if (in_array($_FILES['imagen']['type'][$i], $permitidos) && $_FILES['imagen']['size'][$i] <= $limite_kb * 1024){
                    //Guardamos la imagen como archivo local en "$imagen_temporal". [tmp_name] sería para archivo temporal (carpeta tmp de Xampp).
                    $imagen_temporal = $_FILES['imagen']['name'][$i];

                    //Tipo de extensión.
                    $tipo = $_FILES['imagen']['type'][$i];

                    //Escapamos los caracteres para que se puedan almacenar en la base de datos correctamente.
                    //$imagen_temporal = mysql_escape_string($imagen_temporal);
                    $ruta_imagen = $imagen_temporal; 

                    //Insertamos en la base de datos.
                    $sql = BD::anadirImagenCabana($ruta_imagen, $idcabana);
                }else{
                    echo "<script type='text/javascript'>alert('Formato de archivo no permitido o excede el tamaño límite de $limite_kb Kbytes.');</script>";
                }
            }
        }
    
asked by omaza1990 11.01.2018 в 14:39
source

1 answer

1

Once I did something like that and I'm going to pass what you use:

<input type="file" name="imagen[]" value="" multiple>

PHP + HTML

<?php
if (isset($_FILES['imagen'])){
$cantidad= count($_FILES["imagen"]["tmp_name"]);
for ($i=0; $i<$cantidad; $i++){
//Comprobamos si el fichero es una imagen
if ($_FILES['imagen']['type'][$i]=='image/png' || $_FILES['imagen']['type'][$i]=='image/jpeg'){
//Subimos el fichero al servidor
move_uploaded_file($_FILES["imagen"]["tmp_name"][$i],'../userimage/'.$_FILES["imagen"]["name"][$i];
$validar=true;
}
else $validar=false;
}
}
?>

<form method="post" action="?" enctype="multipart/form-data">
<input type="file" name="imagen[]" value="" multiple><br>
<input type="submit" value="Subir Imagen">
</form>
<?php if (isset($_FILES['imagen']) && $validar==true){ ?>
<?php $cantidad= count($_FILES["imagen"]["tmp_name"]);
for ($i=0; $i<$cantidad; $i++){?>
<h1><?php echo $_FILES["imagen"]["name"][$i] ?></h1>
<img src="<?php echo $_FILES["imagen"]["name"][$i] ?>" width="100">
<?php } }?>

I hope it helps. Greetings

    
answered by 11.01.2018 в 15:49