پرش به مطلب اصلی

توابع کمکی آپلود فایل (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>