نظرة عامة

Runtime Files Downloader هو مكون إضافي لتنزيل الملفات عبر HTTP / HTTPS أثناء وقت التشغيل.
كيفية الاستخدام
إذا كنت بحاجة إلى حفظ ملف في وحدة التخزين، فأنت بحاجة إلى استدعاء وظيفة DownloadFileToStorage.
- Blueprint
- C++

UFileToStorageDownloader::DownloadFileToStorage(TEXT("https://example.com/File.zip"), TEXT("C:/Folder/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToStorageDownloadCompleteNative::CreateLambda([](EDownloadToStorageResult Result, const FString& SavedPath, UFileToStorageDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, saved path: %s"), *UEnum::GetValueAsString(Result), *SavedPath);
}));
إذا كنت لا تحتاج إلى حفظ الملف، بل فقط الحصول على محتوى الملف الذي تم تنزيله، فأنت بحاجة إلى استدعاء دالة DownloadFileToMemory.
- Blueprint
- C++

UFileToMemoryDownloader::DownloadFileToMemory(TEXT("https://example.com/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToMemoryDownloadCompleteNative::CreateLambda([](const TArray64<uint8>& DownloadedContent, EDownloadToMemoryResult Result, UFileToMemoryDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, DownloadedContent size: %d"), *UEnum::GetValueAsString(Result), DownloadedContent.Num());
}));
اختياريًا، يمكنك تحديد نوع الملف المراد تنزيله عن طريق إدخال نوع MIME في حقل نوع المحتوى.
قائمة بأنواع MIME الأكثر شيوعًا مدرجة هنا.
بعد بدء التنزيل، يمكنك إلغاؤه باستخدام دالة CancelDownload.
- Blueprint
- C++

// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
يرجى ملاحظة أنه بدءًا من UE 5.4، يتصرف معامل المهلة (Timeout) بطريقة تلغي الطلب أثناء عملية التنزيل نفسها إذا تجاوز الوقت الإجمالي المستغرق للتنزيل المهلة، وهو ما يُعد إلى حد ما خطأ في UE. يرجى إما تحديد قيمة كبيرة (مثل 3600 ثانية، أي ساعة واحدة) أو تحديدها كصفر لتعطيل المهلة تمامًا.
موارد إضافية
- احصل عليه على Fab
- خادم دعم Discord
- دعم الإضافة والتطوير المخصص: [email protected] (حلول مخصصة للفرق والمنظمات)