0

サイト内のいくつかのファイルを表示/ダウンロードするには、ユーザーを認証する必要があります。私のファイルは、Ainsideというフォルダにありますpublic_html/mySiteName/FoldesName(A)/subFolder/sample.(*.*)。以前.htaccessは、ユーザーが認証されているかどうかを確認していました。


私の.htaccessコード:

RewriteEngine on   # Enable rewrite
RewriteCond %{REQUEST_FILENAME} \.*pdf$|.*psd$|.*indd$ [NC]  
RewriteRule (.*) http://MySiteIp/admin_panel/auth.php?file=$1 [NC,L]

私のダウンロードスクリプトは次のようになります:

if($authed){

    if(file_exists("../".$_GET['file'])) {
        //Create the pointer to our file and open it as read-only binary data
        $fp = fopen($file,'rb');

        // Send headers telling browser to download our passed data
        header("Content-Type: application/force-download");
        header("Pragma: no-cache");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Content-Length: " . filesize($file));
        header("Accept-Ranges: bytes");
        header("Content-Disposition: attachment; filename=\"$file\"");
        while (!feof($fp)) {
            echo(@fgets($fp, 8192));
        } 

        //Here comes the data 
        fclose($fp);
        //and quit
        exit;
    } else {
        echo "No file exists !!!";
    }
}

XamppServerがインストールされているローカルマシンでテストしたとき。できます。しかし、私のホストでは、「ファイルが存在しません」というエラーメッセージが表示されます。

私が間違っている場所を見つけるのを手伝ってください...

4

1 に答える 1

1

echo "here"; die();この質問をする前に、あなたが削除したと思います。

誰でも、ファイル構造はローカルマシンとWebホストで同じですか?

ファイルは実際に../にありますか?たぶん、ファイルへのフルパスを使用してみてください。/ home / youruser /public_html/またはホストのディレクトリ構造が何であれ。

于 2012-04-27T05:43:27.567 に答える