Código PHP:
//Componemos la fecha en formato americano Y-m-d para MySQL
$fecha = $_POST['fecha'];
$dia = substr($fecha, 0, 2);
$mes = substr($fecha, 3, 2);
$anho = substr($fecha, 6, 4);
$fecha = $anho."-".$mes."-".$dia;
$fecha_foto = $fecha."_".date('H:m:i');
//Subimos la foto
if ($_FILES['foto']["name"] != NULL)
{
$uploads_dir = './galeria/';
$tmp_name = $_FILES["foto"]["tmp_name"];
$name = $fecha."_".$nombre;
move_uploaded_file($tmp_name, "$uploads_dir/$name");
$rutaFoto = "$uploads_dir/$name"; //para subir a MySQL
}
Esto después de darle mil vueltas. Antes lo tenía diferente. $nombre lo saco de más arriba, es el nombre de un evento y es correcto. Hacer un echo de $fecha_foto también da bien.
¿Alguna idea?
Por cierto, como puedo llevar hasta aquí la extensión de la imagen? porque el fichero temporal no pone la extension.
Todo esto viene a que quise modificar el código porque cuando quieren subir una imagen con espacios no subían. Así que me decidí por cambiar el nombre de las fotos que suben. Y me acabo dar cuenta que si el nombre del evento no tiene espacios sube bien, el problema es que tenga espacios. Pero aunque añada el nombre así:
$name = $fecha."_".str_replace(" ", "_", $nombre);
Sigue sin funcionar. La foto no sube.
EDIT: claro, no se puede poner en un nombre de fichero ":" los dos puntos. Ahora lo que no se es como pasarle la extensión.¿Alguien?
Y otro problema es que si el nombre del evento tiene acentos, si bien funciona, en Windows se ven caracteres extraños en los nombres de las fotos