ウェブルートに置いていないファイルへのウェブアクセス手段について。


以下の環境だったとします。
サーバ:linux
webルート:home/www/
画像ファイル:home/wav/

ここで、home/www/index.phpから、画像ファイルを表示したいとします。※index.phpには、ログイン処理があり、ログイン処理後に画像ファイルへのアクセスがあるとします。

このとき、PHP使って、以下のような処理になるのかと思います。
・画像ファイルを読み込み。
・画像ファイルの出力。出力後、webルートにはファイルを残さない。

を実現するには、どうすればいいのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/08/28 07:44:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hive7134 No.2

回答回数167ベストアンサー獲得回数16

ポイント60pt

proxyのような働きをするPHPファイルを作成すると実現できます。

基本的には、

<?php
header("Content-Type: image/gif");
readfile("/home/wav/$filename");
?>

のようなものに、

エラー処理やログイン(セッション)状態の監視機能などを付加したものになるかと思います。



なお、

  • mb_http_output("pass") で、PHP がバイナリデータを誤認識し、コード変換することの無いように。
  • Content-Type の値
  • inline の指定
  • Content-Length を付けた方が、ブラウザの認識率が高い
mb_http_output("pass");
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=image.jpg");
header("Content-length: " . filesize("/tmp/image.jpg"));
readfile("/tmp/image.jpg");

とするのが、より良いようです。

http://www.stackasterisk.jp/tech/php/searchAction.do?cid=18



こちらは参考までに

http://lolipoking.lolipop.jp/php/patio.cgi?mode=past&no=1277...

id:iiiiiiiii

とても具体的な解説ありがとうございます。理解できました。

2006/08/28 07:44:02

その他の回答1件)

id:yoneto164 No.1

回答回数813ベストアンサー獲得回数94

ポイント10pt

php の unlink を使ってみてはどうでしょうか。

http://www.sakura-pc.jp/php/02030000.shtml

id:iiiiiiiii

削除の仕方だけでなく、一連を説明してください。

ウェブルートにファイルを残さないだけで、元のファイルは消しません。

2006/08/27 23:49:23
id:hive7134 No.2

回答回数167ベストアンサー獲得回数16ここでベストアンサー

ポイント60pt

proxyのような働きをするPHPファイルを作成すると実現できます。

基本的には、

<?php
header("Content-Type: image/gif");
readfile("/home/wav/$filename");
?>

のようなものに、

エラー処理やログイン(セッション)状態の監視機能などを付加したものになるかと思います。



なお、

  • mb_http_output("pass") で、PHP がバイナリデータを誤認識し、コード変換することの無いように。
  • Content-Type の値
  • inline の指定
  • Content-Length を付けた方が、ブラウザの認識率が高い
mb_http_output("pass");
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=image.jpg");
header("Content-length: " . filesize("/tmp/image.jpg"));
readfile("/tmp/image.jpg");

とするのが、より良いようです。

http://www.stackasterisk.jp/tech/php/searchAction.do?cid=18



こちらは参考までに

http://lolipoking.lolipop.jp/php/patio.cgi?mode=past&no=1277...

id:iiiiiiiii

とても具体的な解説ありがとうございます。理解できました。

2006/08/28 07:44:02

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません