4

プロフィール画像が必要な単純なエンティティがあります。これを行う適切な方法は何ですか?したがって、これは 1 対 1 の関係であり、1 つの画像は 1 つのエンティティのみに関連付けられ、その逆も同様です。この画像は、関連するエンティティを挿入すると共に、Web フォームを介してアップロードする必要があります。

したがって、ファイルシステムを使用して画像を保存し、パス画像のみをデータベースに永続化することを指摘されているので、提供するチュートリアルやリンク、またはコード例があるかどうかを尋ねる必要があります。

ありがとう

4

4 に答える 4

3

Entity Frameworkを使用してIMAGEソース自体をデータベースに永続化し、データベースに次のものを含めるようにします。

  • 作成日
  • ファイルタイプ(コンテンツタイプ)
  • ソース(バイナリ)
  • ファイル名
  • ファイルサイズ
  • 身長

バイトストリーム/BinaryReadersを使用してロードします。私のコードはここにあります:

http://garfbradazweb.wordpress.com/2011/08/16/mvc-3-upload-sql-server-entity-framework/

完全なチュートリアルシリーズはここにあります:http: //garfbradazweb.wordpress.com/welcome-to-my-ancedotes/#

人間関係に関して、私は以下を持っています:

メディアテーブル-すべての画像を保存し、上記の列を含みます。他のテーブルに関連する画像が必要になる場合があります。キーは、C#タイプがGuidであるuniquieid(SQL)です。

プロファイルテーブル-ユーザーのプロファイルを保存します。ここに、プロファイル行と画像の間の1対1の関係であるImageIdがあります。

これを使用する方法を示すMVCImageアプリをここに作成しました。

http://mvcimage.codeplex.com/ これで問題ないか、コード例が必要かどうかをお知らせください。

于 2012-06-08T10:14:20.013 に答える
3

イメージを使用してエンティティを作成するために実行する必要がある手順。

  1. 画像のアップロードで ASP フォームを作成し、エンティティのデータを収集します。理想的には、最初の 1 つの画像のアップロードである 2 つのステップで行う場合です。
  2. 投稿画像の送信時 (大きな画像用に何かを設定する必要があるかもしれません) とエンティティ データ
  3. バックエンドで画像を確認します。よろしければ、フォルダに保存してください。
  4. イメージに問題がなければ、DB にエンティティを作成します。エンティティ イメージのパスは、手順 3 のデータから更新する必要があります。

いくつかのアドバイス:

  • 防御的にコーディングします。
  • 画像のアップロード時に、画像が有効であることを確認します(画像ヘッダーのバイナリチェックも行います)
  • 画像がアップロードされ、確認されてエンティティが作成されるまで待ちます。
  • 新しいエンティティの INSERT の場合、既存のイメージを上書きできないようにします。
  • 主キーとして画像に名前を付ける (1.jpg、2.jpg)
  • 画像の読み込み時に、画像がそこにあると想定しないでください。
  • (可能であれば) 画像の手動操作を許可しないでください (マシンでのリモート操作や、ある場所から別の場所への画像のコピーは禁止されています)。手動操作は不整合を引き起こす可能性があります。
于 2012-06-08T10:11:40.103 に答える
1

単一の画像の場合、テーブルに直接保存します。画像を受け入れられるサイズ (つまり、128x128 ピクセル) にサイズ変更するため、データベースを膨張させることはありません。

また、ファイル システムのバックアップや複数の Web サーバーに関する問題についても心配する必要はありません。

于 2012-06-08T10:11:19.980 に答える
0

HTML 入力タグをファイルのタイプで使用できます。

<input type="file" name="file" />

完全な MVC の例は、ここにあります

于 2012-06-08T10:09:06.143 に答える