実現したいこと
Q&A質問掲示板に動画、画像、pdf のアップロード機能をつけて、その中から動画のある質問のみを5件表示したいです。
発生している問題・分からないこと
Q&A質問掲示板に投稿された質問は10日間で削除されるように作成しているので、➀と➁の理由からアップロードファイルの整合性が取れない状態です。
➀データベースに保存したファイル名のファイルが、サーバーに実際に存在しているかを確保できない
➁データベースに保存しているファイル名をサーバーサイド攻撃を防ぐために変更する必要があり、実際に存在するサーバー内のファイルのファイル名とは異なるので不整合になる
上記に書いていることから整合性を無視する形で、アップロードされたファイルの拡張子をMIMEタイプのチェックでデータの正当性を確かめた後に
ファイル名に質問IDを設けてファイル名を変更して、ファイルをディレクトリに保存しております。
_________________________________
動画がある質問のみを抽出して5件ランダムに表示させる機能を新たに作成したいのですが、ファイル保存の方法はどちらがよいでしょうか?
➀ディレクトリに保存しているものをデータベースに変更する
SELECT * FROM sortable WHERE attach1 LIKE '%.mp4' ORDER BY RAND() LIMIT 5
➁ファイル名は保存しないで、動画ファイルがあるという情報だけを保存する(アップロードファイル1の拡張子が「.mp4」であれば「1」、
そうでなければ「0」を保存してそれを条件に読み込む)
SELECT * FROM sortable WHERE video=1 ORDER BY RAND() LIMIT 5
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
➀の方法だとファイル名を保存する為、ファイルシステムにアクセスしてファイルを探す必要がなくなるメリットがあるのですが、データの量が膨大になると速度が遅くなる可能性がありそうです。
➀の方法ではファイルシステムにglob関数でアクセスする必要がありglob関数で負荷がかかります。
補足
特になし
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/07/27 09:40