0

私はレスラーで次の機能を得ました

/**
 * get updateFiles by name
 *
 * one could get the last update file
 *
 * @status 201
 * @return file
 */
function getupdateFile($filename) {

    $file = 'Plakat.jpg';

    if (file_exists($file)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit;
    }
    else {
        return "<h1>Content error</h1><p>The file does not exist!(".dirname(__FILE__).'/'.($file).")</p>";
    }
}

問題は、ファイルがそこにあり、アクセス許可は正しいが、ファイルのダウンロードが強制されないことです。失敗はどこですか?常に「ファイルは存在しませんが、存在します。php の強制ダウンロードでさまざまな問題を検索しましたが、これは restler に問題があるようです?

Thxインゴ

4

1 に答える 1

0

以下のこのコードを試すことができますが、たまたま正常に動作します

$file = 'Plakat.jpg';
if(file_exists($file))
{
    header("Content-Type: image/png");
    header('Content-Disposition: attachment; filename="ImageName.png"');
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    readfile($file);
}

exit();
于 2013-05-04T12:57:04.190 に答える