Panoramica
Runtime Files Downloader è un plugin per scaricare file tramite HTTP / HTTPS durante l'esecuzione.
Come usarlo
Se hai bisogno di salvare un file nella memoria, devi chiamare la funzione 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);
}));
Se non hai bisogno di salvare il file, ma vuoi solo accedere al contenuto scaricato, allora devi chiamare la funzione 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());
}));
Opzionalmente, puoi specificare il tipo di file da scaricare inserendo un tipo MIME nel campo Content Type
.
Un elenco dei tipi MIME più comuni è disponibile qui.
Dopo che il download è iniziato, puoi annullarlo utilizzando la funzione CancelDownload.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Si prega di notare che a partire da UE 5.4, il parametro Timeout si comporta in modo da annullare la richiesta durante il download stesso se il tempo complessivo impiegato per il download supera il Timeout, il che è in qualche modo un bug in UE. Si prega di specificare un valore elevato (come 3600 secondi, che è 1 ora) o di specificarlo come zero per disabilitare completamente il Timeout.
Risorse Aggiuntive
- Acquistalo su Fab
- Server Discord di supporto
- Sviluppo Personalizzato: [email protected] (soluzioni su misura per team e organizzazioni)