2016-06-25 28 views
0

我使用下面的代码下载一个资产包:如何强制使用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

这个问题是不完整的:当我使用直接在浏览器下面

下载工作正常。你从哪里下载文件?您是否尝试在Unity应用程序中下载资产? – Programmer

+0

我将会首先检查它是否在浏览器中工作,但事实并非如此。 –

+0

如何解决此问题@Programmer? –

回答

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; 
} 
?>