Hola Nemutagk.
He probado varias opciones con isset o empty pero no me lo reconocía:
Código PHP:
if(empty($_FILES["imagen1"]['tmp_name']))
if(isset($_FILES["imagen1"]['tmp_name']))
En cuanto al resto de explicacioes tendría que ir paso a paso de nuevo ya que muchas de estas son nuevas para mi, incluso lo del tiempo del navegador y el máximo de 2mb, de todas formas he probado y a veces lo reconoce y otras no.
El ejemplo que estaba siguiendo es sobre una aportación del foro, en concreto esta:
http://www.forosdelweb.com/f18/aport...on-php-568511/ http://www.forosdelweb.com/f18/aport...1/#post2333342
Y bueno no había puesto antes todo lo de subir el archivo para no llenar de códigos mi error. Lo que tengo ahora al completo sería algo así:
Código PHP:
<?php
if (isset($_POST["enviar"]))
{
/*Primero compruebo si se ha elegido una imagen*/
if($_FILES["imagen1"]['tmp_name']!="")
{
/*echo "Hay imagen ";*/
/*--------------------------- Aquí preparo la imagen, imagen1*/
//Ruta para subir el archivo
$destino = '../img';
//Nombre de la imagen
$imagen1=$_FILES["imagen1"]["name"];
//Nombre Imagen temporal
$imagen1_tmp=$_FILES["imagen1"]["tmp_name"];
//Tamaño
$imagen1_tamano=$_FILES["imagen1"]["size"];
$kilobytes=$imagen1_tamano/1024;//Tamaño de la imagen en Kylobytes;
$maximo = 102400; //100Kb
$max=1500000; //(1.5Mb)
//Tipo de archivo
$imagen1_tipo=$_FILES["imagen1"]["type"];
//Compruebo si el tipo de archivo es correcto
if( ($imagen1_tipo == "image/jpeg") || ($imagen1_tipo == "image/gif") || ($imagen1_tipo == "image/png") || ($imagen1_tipo == "image/x-png") )
{
/*echo "Formato de imagen correcto<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;
case'image/x-png';
$ext=".png";
break;
}
//Si es correcto compruebo el tamaño máximo
if($imagen1_tamano <1500000)
{
/*echo "Tamaño permitido, se puede hacer el envío"; */
// Creamos la cadena aletoria
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad1 = "";
for($i=0;$i<12;$i++)
{
$cad1 .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$nombre_imagen1=$cad1;
//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;
//La subo al servidor
move_uploaded_file ( $_FILES [ 'imagen1' ][ 'tmp_name' ], $destino . '/' .$nombre_imagen1);
/*--Preparo el envío----------*/
$enviar="Insert into noticias (titulo, noticia, imagen, fecha) values ('".$_POST["titulo"]."','".$_POST["noticia"]."','".$nombre_imagen1."', now())";
if($ejecutar_enviar=mysql_query($enviar))
{
echo "Noticia enviada correctamente";
}
else
{
echo "Error: " .mysql_error();
}
}
/*Si el tamaño es mayor que 1.5mb da error*/
else
{
echo '<p class="">Error: El tamaño máximo es 1.5 Mb</p>';
}
}
/*Si el el formato de imagen no es correcto da error*/
else
{
echo "Error, formato de imagen no válida.";
}
/*Fin del envío con imágenes -----------*/
}
/*Si no se ha elegido ninguna imagen preparo el envio*/
else
{
/*echo "No lleva imágenes y preparo el envío sin imagen.";*/
$enviar="Insert into noticias (titulo, noticia, fecha) values ('".$_POST["titulo"]."','".$_POST["noticia"]."', now())";
if($ejecutar_enviar=mysql_query($enviar))
{
echo "Noticia enviada correctamente";
}
else
{
echo "Error: " .mysql_error();
}
}
/*Fin del envío sin imágenes -----------*/
}
?>
Por ahora me sigue fallando lo mismo, voy a ver si busco otro ejemplo o alguna otra manera de arreglarlo con tus explicaciones.
Gracias por tu ayuda, saludos.