0

次のコードを使用してアセット バンドルをダウンロードしています。

<?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 
4

1 に答える 1

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;
}
?>  
于 2016-06-27T07:27:58.377 に答える