توابع کمکی آپلود فایل (upload-file.ts)
توابع کمکی مربوط به آپلود و مدیریت فایلها.
getFileById
دریافت فایل بر اساس ID.
async function getFileById(id: number): Promise<CoreFileModel>
پارامترها:
id: ID فایل
بازگشتی: شیء فایل یا undefined
getFileByFilename
دریافت فایل بر اساس نام فایل.
async function getFileByFilename(filename: string): Promise<CoreFileModel>
getTmpFileByPath
دریافت فایل موقت بر اساس مسیر.
async function getTmpFileByPath(filePath: string): Promise<CoreTmpFileModel>
getUploadedFileUrlById
دریافت URL فایل آپلود شده بر اساس ID.
async function getUploadedFileUrlById(fileId: number, isAbsUrl = true): Promise<string>
پارامترها:
fileId: ID فایلisAbsUrl: آیا URL مطلق برگردانده شود
بازگشتی: URL فایل
removeFileById
حذف فایل بر اساس ID.
async function removeFileById(id: number): Promise<boolean>
removeUploadedFile
حذف فایل آپلود شده.
async function removeUploadedFile(file: CoreFileModel, force = false): Promise<boolean>
checkMaxUserFileUploaded
بررسی حداکثر حجم آپلود کاربر.
async function checkMaxUserFileUploaded(
user: CoreUserModel,
fileSize: number
): Promise<boolean>
getMaxUserFileUpload
دریافت حداکثر حجم آپلود کاربر.
async function getMaxUserFileUpload(user?: CoreUserModel): Promise<number>
uploadUserFile
آپلود فایل کاربر (deprecated).
async function uploadUserFile(options: {
user: CoreUserModel;
dirPath: string;
file: GeneralRequestFile;
strategy?: "move" | "copy";
}): Promise<CoreFileModel | "extra_size">
safeUploadUserFile
آپلود امن فایل کاربر.
async function safeUploadUserFile(options: {
user: CoreUserModel;
dirPath: string;
file: GeneralRequestFile;
strategy?: "move" | "copy";
}): Promise<{
file?: CoreFileModel;
code: FileUploadStatusCode;
error?: string;
}>
پارامترها:
options.user: شیء کاربرoptions.dirPath: مسیر دایرکتوریoptions.file: فایل درخواستoptions.strategy: استراتژی ('move' یا 'copy')
بازگشتی: شیء شامل فایل، کد وضعیت و خطا
مثال:
const result = await safeUploadUserFile({
user: currentUser,
dirPath: 'uploads/avatars',
file: request.files.avatar,
strategy: 'move'
});
if (result.code === FileUploadStatusCode.SUCCESS) {
// فایل با موفقیت آپلود شد
} else {
// خطا در آپلود
}
updateUserByFile
بروزرسانی تنظیمات کاربر بر اساس فایل.
async function updateUserByFile(
user: CoreUserModel,
file: CoreFileModel
): Promise<boolean>
generateUploadedFile
تولید URL فایل آپلود شده.
async function generateUploadedFile(filename: string): Promise<string>