概述

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());
}));
可选地,您可以通过在Content Type字段中输入MIME类型来指定要下载的文件类型。
下载开始后,您可以使用 CancelDownload 函数取消它。
- Blueprint
- C++

// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
请注意,从UE 5.4开始,Timeout参数的行为是:如果下载总耗时超过Timeout,它会在下载过程中直接取消请求——这算是UE的一个小缺陷。请设置一个较大的值(例如3600秒,即1小时),或者将其设置为零以完全禁用Timeout。
额外资源
- 在 Fab 上获取](https://www.fab.com/listings/771d5e74-3d7d-49b9-a682-7a6f7f86b94c)
- 插件支持与定制开发:[email protected](为团队和组织提供的量身定制解决方案)
Join our Discord
online · support