¿Alguien puede sugerir la mejor práctica para generar nombres de archivos únicos para las cargas de archivos para evitar la duplicación de entradas ?Mejor método para generar nombres de archivos únicos al cargar archivos PHP
Gracias de antemano.
¿Alguien puede sugerir la mejor práctica para generar nombres de archivos únicos para las cargas de archivos para evitar la duplicación de entradas ?Mejor método para generar nombres de archivos únicos al cargar archivos PHP
Gracias de antemano.
Normalmente, creo un UID utilizando la función uniqid() para el nombre del archivo o creo una carpeta con el nombre del nombre de usuario que está cargando el archivo y dejo el nombre del archivo original. La desventaja de la primera es que tendrá que guardar el nombre del archivo original en alguna parte para mostrarlo al usuario.
gracias, justo lo que estaba buscando. – Adamski
Puede usar la marca de tiempo unix de cuando se cargó el archivo. Si espera que se realicen varias cargas simultáneamente, puede agregar una identificación de usuario única o parte del nombre del archivo original.
? Buena idea, microtime() es excelente para una sola carcasa de usuario. – Melsi
$ nombre de usuario. $ Fecha y hora. $ RandomNumber
o usted podría reconsiderar esto si no quiere que la gente a conocer los detalles de cuando fue subido y por quién
Hay tempnam
y tmpfile
, si desea crear archivos, o this question.
Esta función puede ayudar:
http://php.net/manual/en/function.uniqid.php
También puede considerar el mirar en el uso de un hash del contenido de los archivos tales como:
Tenga cuidado con las colisiones cuando usa hash como nombre de archivo. Mejor usar un hash salado con una cadena aleatoria. – luxcem
Algo así como:
md5(date('Y-m-d H:i:s:u'));
Sh debería funcionar bien.
Hashes no son únicos. – afilina
@afilina ¿Por qué los hashes no son únicos? –
Existe la posibilidad de una colisión con MD5 o cualquier función de hashing, pero eso es improbable para la mayoría de los casos de uso. Mi respuesta original es de 2010. Use sha256, la posibilidad de una colisión es muy, muy baja https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions -en la práctica – systematical
La forma más segura sería un contador incremental. –
@Pekka ¿Cómo puedo usar un contador para cargar imágenes –