Если вы хотите сделать название файла и название, которое отправляется в базу данных (БД) одинаковыми и уникальными, то вам потребуется использовать некий алгоритм генерации уникальных идентификаторов для файлов.
Одним из популярных способов генерации уникальных идентификаторов является использование UUID (Universally Unique Identifier). UUID - это 128-битное число, которое гарантированно уникально во всемирном масштабе, даже при использовании разных компьютеров и разных временных меток.
Вам нужно сгенерировать UUID и использовать его как название файла и название, которое отправляется в БД. Затем, когда вы сохраняете файл, вы можете использовать это название вместе с расширением файла для создания уникального имени файла.
Вот пример того, как это можно сделать на языке программирования JavaScript с использованием драйвера MongoDB для работы с базой данных:
const { v4: uuidv4 } = require('uuid'); const fs = require('fs'); const MongoClient = require('mongodb').MongoClient; // Генерируем UUID const uuid = uuidv4(); // Сохраняем файл const filePath = `uploads/${uuid}.jpg`; // Здесь uploads - директория, в которой вы хотите сохранить файл, а .jpg - расширение файла const fileData = '...'; // Данные файла, возможно, получены из запроса клиента fs.writeFileSync(filePath, fileData); // Отправляем название файла и UUID в БД const dbUrl = 'mongodb://localhost:27017/mydb'; // URL вашей MongoDB базы данных const dbName = 'mydb'; // Название вашей базы данных const collectionName = 'files'; // Название коллекции, где вы хотите сохранить информацию о файлах MongoClient.connect(dbUrl, function(err, client) { if (err) throw err; const db = client.db(dbName); const collection = db.collection(collectionName); const document = { uuid: uuid, filename: `${uuid}.jpg` }; collection.insertOne(document, function(err, res) { if (err) throw err; console.log("Document inserted"); client.close(); }); });
В данном примере мы используем библиотеку uuid
для генерации уникального идентификатора UUID. Затем мы сохраняем файл с помощью модуля fs
, используя сгенерированный UUID в качестве названия файла и расширением .jpg. Далее мы соединяемся с MongoDB используя MongoClient
, вставляем информацию о файле в коллекцию и закрываем соединение с базой данных.
Таким образом, вы сможете достичь того, чтобы название файла и название, отправляемое в базу данных, были одинаковыми и уникальными, используя UUID в качестве идентификатора.