2011-07-01 7 views
1

私はJoomla!サイトごとに、私はイメージを持っています。 私が望むのは、イメージをユーザーに非公開にするが、一時的に(よく、コピー)公開することです。一時的にサーバーファイルを公開する

私は「publish.php」スクリプトを呼び出すリンクをクリックさせることを考えました。 このスクリプトは、ユーザー名を取得し、一時(30秒)フォルダーを作成し、プライベートイメージをその一時フォルダーにコピーします。

スクリプトは、ランダムなキーを生成し、ユーザ名とキーすなわちwww.site.com/photos/get_photo.php?key= ユーザ名を使用してURLを構築します。その後、誰か*キー*

(QRスキャナーを介して)そのリンクに行くと、 "get_photo.php"スクリプトがキーが有効であったかどうか、それが画像を表示していたかどうかをチェックします。

誰もが私のサーバーをポーリングし、写真が利用可能になったときにそれをドラッグし続けることができるという意味で、誰でもそれを見ることができるが公開しないという意味で、写真を公開したい。

私は元の写真のセキュリティで立ち往生していますが、プライベートならスクリプトはそれらにアクセスできませんが、公開されている場合は一時的に公開する目的を破ってしまいます。

次の問題は、1つのスクリプトで他のスクリプトで確認できるキーを生成していることです。

ガイダンスに感謝します。

答えて

0

ファイルをコピーするオーバーヘッドを経験する場合は、ファイル自体を読み込んで出力することもできます。どのように画像を追跡しているのか分かりませんが、データベース内に公開されたときにマークするタイムスタンプの列を追加することができます。次に、スクリプトがそのタイムスタンプをチェックして、それが過去30秒以内に公開されたかどうかを確認します。それがあった場合は、イメージにfile_get_contentsを実行し、適切なイメージヘッダーを設定して出力します(デフォルトエラーイメージをロードしていない場合)。

+0

ありがとうございます。私は写真をディレクトリにファイルとして保存しています(データベースに画像を保存するのは悪い習慣でした)。ここで、ファイル名はユーザ名であり、したがってusernameパラメータを渡します。その方法では、画像はスクリプトによってアクセス可能になり、決して一般公開されません。 – Dre

+0

データベースに画像を保存することについての議論があります。個人的に私はそれをしたくない。あなたのイメージがWebルートの外にあるディレクトリに保存されている場合は、それらのイメージの唯一のゲートウェイにスクリプトを含めることができます。そのスクリプトへのアクセスは、スクリプトがどのように書かれているかによって決まります。スクリプト内でユーザーのセッションを確認するための認証を入れることもできますし、私の答えで言えば、データベースのタイムスタンプをチェックして画像を読み込みます。 – copacetic

関連する問題