1

アプリの登録プロセスの一環として、ユーザーはプロフィール写真を選択できます。私の最初のアイデアは、画像をデータベースに保存することでしたが、これは良い考えではないと読みました。他の解決策は、画像をファイルシステムにアップロードし、パスをデータベースに保存することだと思います。これはこれを行う正しい方法ですか?システムに不明なファイルを保存するために保存されますか?

4

3 に答える 3

0

database関連するデータがある場合は、写真を特別に保存することをお勧めします。

写真を保存するfilesystemと、並行性やその他の問題が発生する可能性があり、自分で処理する必要があります。

于 2013-01-01T16:47:28.127 に答える
0

画像やその他のバイナリ アセットをデータベースに保存するのは面倒です。SQL コマンド ラインからそれらを簡単に表示することはできません。画像のエンコードとデコードのプロセスはパフォーマンスの問題になる可能性があり、実行できるデータベース操作は比較的少ないです。バイナリブロブで行います。

ただし、多くの利点もあります。イメージはデータベースの残りの部分と一緒にバックアップされ、負荷分散されたサーバー ファームでは、複数の Web サーバー ファイル システム間でイメージを複製することについて心配する必要はありません。

両方の長所を活かすには、画像をデータベースに保存し、Web サーバーのファイル システムにキャッシュすることをお勧めします。そうすれば、ファームにサーバーを追加すると、イメージが要求されるとキャッシュが構築されます。画像をキャッシュすることにより、リクエストごとに「デコード」パフォーマンスのペナルティを支払う必要がなくなります。

ユーザーが行うことは決して信用してはなりません。少なくとも、ユーザーが画像にアップロードできるファイルの種類 (.png、.jpg など) を制限する必要があります。大規模な公開 Web サイトを運営している場合は、アップロードされたファイルをウイルス スキャナーで実行することを検討してください。現在、私が認識している画像ファイル タイプに脆弱性はありませんが、数年前には脆弱性がいくつかありました。戻るかもしれません。

于 2013-01-01T17:19:34.923 に答える
0

アップロード機能で受け入れているファイルを常に確認する必要があります。
画像については、この投稿を確認してください

于 2013-01-01T16:33:53.590 に答える