Unity3D — Как заставить пакет Unity активов скачать с помощью PHP?

Я загружаю комплект ресурсов, используя следующий код:

<?php
$file_url = "AssetBundle/bundle-numb";
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($file_url));
readfile($file_url);
>?

Однако загружаются только некоторые байты, и когда я открываю файл, я получаю сообщение об ошибке

filesize(): stat failed for ....

Когда я пытаюсь использовать тот же код для загрузки других файлов, он работает нормально, но не с пакетами ресурсов.

Пакеты активов по умолчанию сжаты LZMA, и я думаю, что пакеты активов не имеют расширений файлов.

Загрузка работает нормально, когда я использую следующее прямо в браузере:

http:XXXXXXXXXX.com/AssetBundle/bundle-numb

0

Решение

Я думаю, что нашел решение, используя php

<?php
$fileName = basename('bundle-rainbow');
$filePath = 'AssetBundles/'.$fileName;
if(!empty($fileName) && file_exists($filePath)){
// Define headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/zip");
header("Content-Length:".filesize($filePath));
header("Content-Transfer-Encoding: binary");

// Read the file
readfile($filePath);
exit;
}else{
echo 'The file does not exist.';
echo $fileName;
}
?>
// Read the file
readfile($filePath);
exit;
}else{
echo 'The file does not exist.';
echo $fileName;
}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]