Hola, estoy haciendo un ejercicio para aprender y haciendo pruebas veo que me da un error.
El error es exactamente cuando intento subir imagenes con un peso superior a un mega.
Lo extraño es que a veces, y no se cuando me indica correctamente el "echo del archivo superior...."
¿A golpe de vista alguien puede observar que puede ser?
gracias!!
<?php
//recibimos los datos de la imagen
$nombre_fichero=$_FILES['fichero']['name'];
$tipo_fichero=$_FILES['fichero']['type'];
$tamano=$_FILES['fichero']['size'];
//echo $tipo_imagen;
if($tamano<=1000000){
//ruta de la carpeta destino en servidor
$carpeta_destino=$_SERVER['DOCUMENT_ROOT'] . '/subidas/';
//Movemos la imagen del directorio temporal al directorio escogido
move_uploaded_file($_FILES['fichero']['tmp_name'], $carpeta_destino.$nombre_fichero);
try{
$base=new PDO('mysql:host=localhost; dbname=pruebas', 'root', '');
$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$base->exec("SET CHARACTER SET UTF8");
//pasamos la imagen a bytes para pasarlo a la bbdd
$fichero_objetivo=fopen($carpeta_destino . $nombre_fichero, "r");
$contenido=fread($fichero_objetivo, $tamano);
$contenido=addslashes($contenido); //da error....
fclose($fichero_objetivo);
$sql="INSERT INTO archivos (nombre, tipo, contenido) VALUES (:nombre, :tipo, :contenido)";
$resultado=$base->prepare($sql);
$resultado->execute(array(":nombre"=>$nombre_fichero, ":tipo"=>$tipo_fichero, ":contenido"=>$contenido));
echo "Fichero subido: " . $nombre_fichero;
}catch (Exception $e){
die('Error' . $e->getMessage());
echo "Linea del error " . $e->getLine();
}
}else{
echo "El tamaño de " . $nombre_fichero . " es demasiado grande";
}
?>