Tengo un formulario donde un administrador cargará tres imágenes con diferentes dimensiones a tres directorios designados diferentes. ahora para asegurarme de no entrar en el problema de los nombres de archivos duplicados, implementé algo así como que el php comparará el nombre del archivo cargado y comprobará si ese nombre de archivo existe en el directorio designado si es así, se repetirá un error y detener la ejecución del scriptCambio de nombre de archivo PHP
Ahora uno de mis amigos me sugirió que es muy malo pedirle al administrador que cambie manualmente el nombre del archivo de imagen y pidiéndole que se encargue del problema de duplicación de archivos. la solución que sugirió fue cambiar el nombre del archivo automáticamente y luego almacenarlo en la base de datos y luego dirigirlo al directorio.
Me gustaría saber qué combinación debo dar al archivo renombrado y también asegurarse de que seguirá siendo único nombre de archivo para ser más precisos me gustaría que entiendan mi estructura de directorios
como ya he dicho habrá tres archivos de imágenes del administrador será subiendo a saber
a) b Título de imagen) Breve Imagen c) Cuadro del detalle
y todos los tres archivos de imagen se ser movido al directorio respectivo diferente, como la imagen del título va al directorio del título y así sucesivamente.
estoy usando para hacer una secuencia de comandos a continuación solo para mover y almacenar el nombre del archivo con la ruta utilizando varchar en la base de datos.
$ns_pic_title_loc= $_FILES["ns_pic_title"]["tmp_name"];
$ns_pic_title_name = $_FILES["ns_pic_title"]["name"];
move_uploaded_file($ns_pic_title_loc, $ns_title_target.$ns_pic_title_name) or die(mysql_error());
que es sólo el código de ejemplo no he incluido la función de validación que estoy usando. Estaba pensando que quería cambiar el nombre de todos los archivos como
a) En el directorio de título, el archivo debe almacenarse como. title_1.jpg title_2.jpg title_3.jpg title_4.jpg
y así sucesivamente
y la misma forma de resto de las imágenes. ¿Cómo puedo hacer eso? ¿Qué función utilizo para alcanzar mi objetivo? y si esta no es la mejor manera de cambiar el nombre del archivo, agradecería cualquier sugerencia que se haya seguido para cambiar el nombre del archivo.
gracias de antemano
Esta es una mejor alternativa a la sugerencia de blob al tiempo que sigue haciendo uso de la clave id/primary de la base de datos. Lo he usado varias veces yo mismo. – Treffynnon
aunque esta es una buena solución, consideraría usar la función tempnam. solo el tipo de función que estaba buscando. –
Esta es una buena forma de sincronizar las identificaciones de base de datos y los nombres de archivo de imagen. Tiene una condición de carrera como la sugerencia de marca de tiempo en mi respuesta, pero una vez más eso no es gran cosa en un sitio con pocos administradores cargando imágenes. – Jeff