estoy generar un nombre de archivo único para los archivos cargados con el siguiente códigoGeneración de un nombre de archivo único basado en el tiempo para la carga sin crear una condición de carrera
$date = date('U');
$user = $_SERVER[REMOTE_ADDR];
$filename = md5($date.$user);
El problema es que quiero utilizar este nombre de archivo nuevo más adelante en el guión, pero si el guión tarda un segundo en ejecutarse, voy a obtener un nombre de archivo diferente la segunda vez que intento usar esta variable.
Por ejemplo, estoy usando un script de carga/cambio de tamaño/guardar imagen cargada. La primera operación del script es copiar y guardar la imagen redimensionada, que utilizo una función de fecha para asignarle un nombre único. A continuación, el script procesa el guardado y guarda la carga completa, y le asigna un nombre. Al final del script ($thumb
y $full
son las variables), necesito insertar en una base de datos MySQL, los nombres de archivo que utilicé cuando guardé las cargas. El problema es que a veces en imágenes grandes tarda más de un segundo (o durante el proceso, los segundos cambian) dando como resultado un nombre de archivo diferente al de la base de almacenamiento del archivo.
¿No es una buena idea utilizar este método de nomenclatura?
Esto parece abordar la pregunta real que no se trata de "cómo puedo generar un nombre único" sino más bien "cómo evito generar el nombre dos veces". – Lucky