1

ASP.NET と SQL Server を使用して会社の従業員向けのイントラネットを作成しています。プロファイル セクションには、アップロード画像領域 (画像を表示するための画像フィールド、ファイルを選択するための入力、および読み込みボタン) があります。これは正常に機能しており、画像はフォルダーに読み込まれていますが、ユーザーが情報を追加するテキストフィールドもあります。これもうまく機能しており、データベースに保存しています。今私がやりたいことは、ユーザー写真をアップロードし、送信ボタンをクリックしてすべてのフィールドをデータベースに送信すると、すべてのテキスト フィールドで終了します。アップロードした写真の名前またはパスもデータベースに入ります。すべてのテキスト フィールドは sqlDataSource を使用して保存されます。挿入パラメータを使用。

それを行う方法はありますか?? コードビハインドでは SqlDataSource1.Insert(); を初期化しているだけなので、フロントサイドコードでそれを行うことをお勧めします。

4

2 に答える 2

1

画像をディスクに保存しないでください。保存すると、遅かれ早かれ醜い混乱が生じます。ユーザーが画像をアップロードし、サーバー上で画像のサイズ変更/トリミングを行い、画像を base64 に変換し、base64 文字列を varchar(max) 列に保存できるようにする必要があります。

小さな画像 (アバター) のみを保存しているため、このソリューションは問題なく機能するはずです。また、DB から画像の base64 文字列をフェッチするときに、IE7 が必要でない場合は、HTML に直接埋め込むことができます。データ URI スキームをサポートするブラウザーの一覧は次のとおりです。

base64 を HTML に埋め込むことがうまくいかない場合は、base64 文字列をイメージにデコードし、バイナリ応答を返す ASP.NET ページを作成します。次に、次のようにページで使用します。

<img src="http://www.example.com/images.aspx?thimageDBrowID=12345" width="20" height="20"/>
于 2012-07-09T20:28:13.253 に答える
0

SQL Server 2008 を使用している場合は、FILESTREAMの使用を検討できます。

于 2012-07-09T20:39:50.593 に答える