2

アップロードされたファイルのダウンロードと保存ができないという問題があります。

私のユーザーは、doc、pdf、ppt などの複数のファイル タイプをアップロードできます。

いずれかのファイルに URL があれば、このすべてのファイル タイプを簡単にダウンロードできます。

では、ファイルのダウンロードを防ぐためのより良い方法は何ですか。

または、アップロードしたファイルを簡単にダウンロードできない特定の形式 (フラッシュなど) に変換します。

私はphpとmysqlで実行しています。

ありがとう
アビナッシュ

4

3 に答える 3

2

この点に関しては2つの選択肢があります。1つは、PHPスクリプトを使用して、サーバーのWebディレクトリの外にあるサーバー側のフォルダーにファイルを移動することです。2つ目は、ファイルをMySQLテーブルのBLOB列に格納することです。どちらも、ファイルをそれほど簡単にダウンロードできない形式に変換する必要なしに、ユーザーがファイルに直接アクセスすることを防ぎます。

于 2010-03-04T04:57:37.673 に答える
1

ドキュメント ルートの外にファイルをアップロードします。例えば:

/var/username/uploads/file.docx

ドキュメントルートはどこですか

/var/username/public_html/index.php

したがって、直接アクセスすることはできません。ダウンロードを許可する場合は、「download.php」という名前の PHP ファイルを作成します。このファイルは、次のような処理を行います。

$data  = file_get_contents('/var/username/uploads/file.docx');
header('Content-Type: application/docx');
header('Content-Length: '.strlen($data));
header('X-Content-Type-Options: nosniff');
echo $data;

明らかに、ユーザーがこの特定のファイルをダウンロードするための適切な権限を持っているか、ログインしているかどうかを確認するチェックを追加できます.

于 2010-03-04T10:53:38.563 に答える
0

解決策として、アップロード フォルダーにユーザーとパスワードを設定して、認証の詳細を知っているユーザーだけがファイルをダウンロードできるようにすることができます。サーバー フォルダーに htpasswd ファイルを作成する方法については、次のリンクを参照してください。


http://httpd.apache.org/docs/1.3/programs/htpasswd.html


于 2010-03-04T11:51:58.643 に答える