Aperçu
Runtime Files Downloader est un plugin permettant de télécharger des fichiers via HTTP/HTTPS pendant l'exécution.
Comment l'utiliser
Si vous avez besoin d'enregistrer un fichier dans le stockage, vous devez appeler la fonction 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);
}));
Si vous n'avez pas besoin de sauvegarder le fichier, mais simplement d'accéder au contenu téléchargé, alors vous devez appeler la fonction 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());
}));
Optionnellement, vous pouvez spécifier le type de fichier à télécharger en entrant un type MIME dans le champ Content Type
.
Une liste des types MIME les plus courants est disponible ici.
Une fois le téléchargement démarré, vous pouvez l'annuler en utilisant la fonction CancelDownload.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Veuillez noter qu'à partir de l'UE 5.4, le paramètre Timeout se comporte de manière à annuler la requête pendant le téléchargement lui-même si le temps total pris pour le téléchargement dépasse le Timeout, ce qui est en quelque sorte un bug dans l'UE. Veuillez soit spécifier une valeur élevée (comme 3600 secondes, soit 1 heure) soit la définir à zéro pour désactiver complètement le Timeout.
Ressources supplémentaires
- Obtenez-le sur Fab
- Serveur Discord de support
- Développement personnalisé : [email protected] (solutions sur mesure pour les équipes & organisations)