Przegląd

Runtime Files Downloader to wtyczka do pobierania plików przez HTTP / HTTPS w czasie działania aplikacji.
Jak używać
Jeśli potrzebujesz zapisać plik do pamięci, musisz wywołać funkcję 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);
}));
Jeśli nie musisz zapisywać pliku, a jedynie uzyskać dostęp do pobranej zawartości, wówczas musisz wywołać funkcję 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());
}));
Opcjonalnie, możesz określić typ pliku do pobrania, wprowadzając typ MIME w polu Content Type.
Lista najczęstszych typów MIME znajduje się tutaj.
Po rozpoczęciu pobierania możesz je anulować za pomocą funkcji CancelDownload.
- Blueprint
- C++

// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Należy pamiętać, że począwszy od UE 5.4, parametr Timeout zachowuje się w sposób, który anuluje żądanie podczas samego pobierania, jeśli całkowity czas pobierania przekroczy wartość Timeout, co jest swego rodzaju błędem w UE. Proszę albo określić dużą wartość (np. 3600 sekund, czyli 1 godzinę), albo ustawić ją na zero, aby całkowicie wyłączyć Timeout.
Dodatkowe zasoby
- Pobierz na Fab
- Serwer wsparcia na Discordzie
- Wsparcie dla wtyczki i rozwój na zamówienie: [email protected] (spersonalizowane rozwiązania dla zespołów i organizacji)