0

私は問題があります。私は Web アプリケーションを開発しており、スタッフ用のファイルをアップロードします (例: 履歴書、前科チェックなど)。これらのファイルには、John_Doe_Resume_12-12-12-16:36:23.PDF のような時間、スタッフの名前、およびファイルの種類を含む名前が付けられます。したがって、すべてのファイルはディレクトリにあるため、ブラウザにファイル パスを入力することで、このファイルに直接アクセスできます。

PHP Web アプリケーション内からこれらのファイルにアクセスして、必要なときにダウンロードできるようにする必要があります。私が考えた解決策の 1 つは、ファイル情報を mysql に保存することでしたが、これは多くの作業と余分なサーバー負荷がかかります。

ディレクトリへのアクセスを制限して、PHP Web アプリケーションのみがアクセスできるようにする方法はありますか? (つまり、人々はファイルのURLを直接入力してダウンロードすることはできません)

4

1 に答える 1

0

あなたが入れなければならない

deny from all

.htaccess ファイルに。このファイルを、直接 URL では到達できないディレクトリに配置します。.htaccess が apache に影響を与えているため、php スクリプトはディレクトリに入ることができます。

PHPであなたがする

$filename = "yourfilename.pdf";
$filepath = "./../rel_path_to_restricted_folder/";


if(file_exists($filepath . $filename))
{
    header('Content-disposition: attachment; '. $filename);
    header('Content-type: ' . mime_content_type($filepath . $filename));
    readfile($filepath . $filename);
}
else
{

    echo("File not found"); 
}

ほら;)

于 2012-12-13T03:58:29.830 に答える