我在Unity WebGL中使用PHP,可以成功创建图像并将其保存在服务器上。我现在想通过我的Unity程序通过PHP运行的浏览器下载该图像。当通过Unity访问PHP脚本时,不会出现下载,但如果我手动输入URL,它会很好地工作。
以下是我正在使用的PHP脚本:
$file_url = __DIR__ . "/IMAGES/OUTPUT_IMAGES/TEST_.png";
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename="" . basename($file_url) . """);
ob_clean();
flush();
readfile($file_url);
exit();
以下是Unity中调用此脚本的C#代码:
uwr = UnityWebRequest.Get(DownloadImageURL);
yield return uwr.SendWebRequest();
if (uwr.result == UnityWebRequest.Result.ConnectionError)
{
print("Error downloading file: " + uwr.error);
}
这是浏览器控制台的屏幕截图
我发现了一个与我想要的有点不同的解决方案。我最终在Unity中使用了Application.OpenURL()
,URL是下载该文件的php脚本。基本上,我无法使用UnityWebRequest.Get
下载任何带有readfile的内容,但它可以使用Application.OpenURL
。