Descripción
Runtime Files Downloader es un plugin para descargar archivos a través de HTTP / HTTPS en tiempo de ejecución.
Cómo usar
Si necesitas guardar un archivo en el almacenamiento, debes llamar a la función 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 no necesitas guardar el archivo, sino solo acceder al contenido descargado, entonces debes llamar a la función 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());
}));
Opcionalmente, puedes especificar el tipo de archivo a descargar ingresando un MIME type en el campo Content Type
.
Una lista de los MIME types más comunes está disponible aquí.
Después de que la descarga haya comenzado, puedes cancelarla usando la función CancelDownload.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Tenga en cuenta que, a partir de UE 5.4, el parámetro Timeout se comporta de manera que cancela la solicitud durante la propia descarga si el tiempo total empleado en descargar supera el Timeout, lo cual es, en cierto modo, un error en UE. Por favor, especifique un valor grande (como 3600 segundos, que equivale a 1 hora) o establézcalo en cero para deshabilitar el Timeout por completo.
Recursos adicionales
- Consíguelo en Fab
- Servidor de soporte en Discord
- Desarrollo personalizado: [email protected] (soluciones a medida para equipos y organizaciones)