0

以下が可能かどうかを確認します。

私は PHP サイトを持っています。これにより、ユーザーはログイン情報を MYSQL データベースに保存して、サイトに基本的なログインを行うことができます。

サイトの管理エリアから、すべて特定のフォルダーにアップロードされる PDF をアップロードできます。たとえば、場所は「/pdf/uploads/」とします。

特定のファイルを閲覧できるユーザーを制限することはできますか?

たとえば、「jsmith」というユーザー名を持つユーザーがいるとします。ログインすると、/pdf/uploads/ ディレクトリに保存されている「test.pdf」というファイルが表示されます。リンクをクリックしてファイルを開くことができます。

次に、2 番目のユーザー「jdoe」がログインすると、リストされているファイルが表示されますが、jsmith が表示する「test.pdf」ファイルがリストされていません。「jdoe」が「http://www.website.com/pdf/uploads/test.pdf」という URL をランダムに入力した場合、そのファイルを表示/ダウンロードできないようにする方法はありますか?

助けてくれてありがとう!

4

2 に答える 2

1

はい、可能です。あなたがしなければならないことは、現在のユーザー権限とreadfile()適切なヘッダーをチェックすることだけです。

例えば。このような:

$file = 'somefolder/file.pdf';

if (file_exists($file) && userHasPermission($file)) {
    header('Content-Type: application/pdf');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    die;
}

また、このファイルを public ディレクトリの上に置くとよいでしょう。そうすれば、誰もそのスクリプト (もちろん ftp) 以外の方法でアクセスすることはできません。

于 2013-10-10T16:46:16.717 に答える
0

はい、できます。ただし、権限に関するこの情報もデータベースに保存する必要があります。さらに2つのテーブルが必要だと思います:

  • ファイル
  • ユーザーファイル

そのため、files テーブルにファイルを登録し、ユーザーを user_files テーブルのそれぞれのファイルに関連付けることができます。

于 2013-10-10T16:53:01.300 に答える