2

Facebookのように、「アルバム」に画像を表示できるウェブサイトのモジュールを作成しています。

~/Images画像を保存/グループ化するために、アプリケーションの構造内のフォルダーにそれらを配置することを計画しました。これは悪い習慣と見なされますか?それとも、アプリケーションをセキュリティの脆弱性にさらすことになりますか? このようなものをサイト構造に配置するべきではないと読みましたが、その理由がよくわかりません (または、これが同じシナリオであるかどうか)。

したがって、アルバムは次のようにグループ化されます...

~/Images/album1~/Images/album2など

これは の中に入れるのに適切なものですApp_Dataか、それとも、このようなもののためのより「好ましい」場所はありますか?

これが些細な質問である場合は申し訳ありません。

4

4 に答える 4

1

ここでの3つの答えはすべて良いです。アップロードされた画像に推奨されるストレージはありません。要件に基づいてすべて決定します。

Henhealg が言うように、それらを App_Data に保存しないでください。ここに配置すると、Web からアクセスできなくなります。たとえば、パスが正しい場合でも、次の例では画像がレンダリングされません。

<img src="/App_Data/album1/image1.png" alt="" />

1 つのオプションは、ローカルの ~/Albums ディレクトリを、sylon が言うように、Web サーバーにアクセス可能な別のフォルダーにマップすることです。これにより、MVC アプリが提供されているディレクトリから画像が除外されますが、そこにあるように「ふり」ます。IIS を管理していて、ファイル共有を設定できる場合は、これが選択肢になる可能性があります。

また、XToro が言うように、それらを SQL データベースに保存することもオプションです。フォルダーやファイル名の衝突を心配する必要がないため、ここに保存すると柔軟です。複数のユーザーがそれぞれ同じ名前のアルバムやファイルを持つことができますが、通常のファイルのようにファイル システムのスペースを占有しないため、衝突することはありません。アプリにとってセキュリティが重要な場合 (許可されていないユーザーに写真やアルバムを表示しないこと)、それらを SQL テーブルに含めると、これがかなり簡単になります。

ただし、セキュリティやファイル名の競合が心配でない場合は、MVC アプリの ~/Images または ~/Albus ディレクトリに簡単に保存できます。

于 2012-08-15T12:39:56.013 に答える
1

サーバーのパフォーマンスによっては、BLOB を使用して画像をデータベースに保存することを検討することをお勧めします。

https://dev.mysql.com/doc/refman/5.0/en/blob.html

フォルダー構造やフォルダーのアクセス許可を気にすることなく、画像を簡単に並べ替え、整理、分類できます。選択した PHP/AJAX/言語を使用して認証を行い、表示するファイルを選択するだけです。

このようにして、各画像には、投稿したユーザー、元のファイル名、キャプション、所属するアルバムなどの独自のフィールド (必要な数だけ) を含めることができます。

于 2012-08-15T07:36:43.613 に答える
0

アプリケーションが本番環境に入ると、ユーザーは画像の保存場所を簡単に確認できるため、画像を保存する場所は、画像が保存されているフォルダーに設定する権限と同じくらい重要ではありません。

于 2012-08-15T06:49:57.130 に答える
0

あなたが言っているようにファイルシステムを使用しますが、それは悪い習慣だと言っているので、アプリケーションフォルダーの外に保存します。私はこれに同意します-展開を行うときは、すべてを削除して新しいコードをドロップし、web.configファイルをそのままにしておくことを好みます。常にクリーンな環境があり、心配することなくゼロから始める方がはるかに簡単です以前のインストールからバックアップまたは持ち込む必要があるもの。

IIS を使用して、ネットワーク共有ストレージから必要な場所、またはアルバムを安全に保管したい場所にディレクトリをマップします。

たとえば 、D:\MySafeStorage\Albums\ あなたの ~\Albums\ ウェブサイトがC:\inetpub\MyWebSite\

于 2012-08-15T07:44:24.903 に答える