質問するログイン新規登録

回答編集履歴

4

追記

2020/10/08 04:23

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -8,6 +8,7 @@
8
8
  - データの管理情報の保存先
9
9
 
10
10
  は別の問題です。
11
+ 質問中にある同様の質問への回答でも、画像データの管理情報についてはDBに格納するという前提で皆さん回答されている様に思います。
11
12
 
12
13
  例えば、データのアクセス制御を行う必要がある場合は
13
14
 

3

追記

2020/10/08 04:23

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -13,8 +13,18 @@
13
13
 
14
14
  - 画像データ自体はドキュメントルート以外のところに置く
15
15
  - 画像データの管理情報はDBに置く
16
+ - HTML上では管理情報で管理されているパスを表示する
16
17
  - その画像の外部から見た場合のファイルパスにアクセスしたらアクセス制御用のPHPにアクセスさせる(特定のパス以下は全部そのPHPにアクセスさせるようなmod_rewriteを書く)
17
18
  - アクセスが可能な状態かどうかをDBデータから判断し、アクセス可能な状態であれば`fread()`で画像のバイナリを出力する(ブラウザから見たら普通に画像にアクセス出来たように見える)
18
19
 
19
20
  という感じの実装をすることが多いです。
20
- `PHP 画像 アクセス制限`等で調べてみてください。
21
+ `PHP 画像 アクセス制限`等で調べてみてください。
22
+
23
+ 一方で、パスさえ分かれば誰がアクセス出来ても良いという要件であれば
24
+ - 画像データ自体はドキュメントルート配下に置く
25
+ - 画像データの管理情報はDBに置く
26
+ - HTML上では管理情報で管理されているパス=実際のファイルパスを表示する
27
+ - アクセスは普通のファイルとしてアクセスする
28
+
29
+ とすればいいので簡単です。
30
+ どちらの場合も、削除時には画像データそのものを削除しつつ、管理情報を変更したり削除したりします。

2

追記

2020/10/07 15:36

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  例えば、データのアクセス制御を行う必要がある場合は
13
13
 
14
14
  - 画像データ自体はドキュメントルート以外のところに置く
15
- - 画像データの情報はDBに置く
15
+ - 画像データの管理情報はDBに置く
16
16
  - その画像の外部から見た場合のファイルパスにアクセスしたらアクセス制御用のPHPにアクセスさせる(特定のパス以下は全部そのPHPにアクセスさせるようなmod_rewriteを書く)
17
17
  - アクセスが可能な状態かどうかをDBデータから判断し、アクセス可能な状態であれば`fread()`で画像のバイナリを出力する(ブラウザから見たら普通に画像にアクセス出来たように見える)
18
18
 

1

補足

2020/10/07 15:29

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -6,10 +6,8 @@
6
6
 
7
7
  - データそのものの保存先
8
8
  - データの管理情報の保存先
9
- - データの表示/非表示の制御
10
- - 管理上のファイル名とストレージ上のファイル名の管理
11
9
 
12
- 全て別の問題です。
10
+ は別の問題です。
13
11
 
14
12
  例えば、データのアクセス制御を行う必要がある場合は
15
13