|
.NET TIPS [ASP.NET]バイナリ・データをアップロードしてデータベースに登録するには?山田 祥寛2005/01/21 |
![]() |
|
|
|
文字列や数値のような単純なテキスト・データだけでなく、Excelワークシート、Word文書、PDF文書などのバイナリ・データをデータベース・サーバで管理したいというケースは意外と多い。業務フローの主体が次第にWebシステムに重心を移してきたとはいっても、表現力に富んだOffice製品を業務で利用する機会が減ってきたわけではないし、手元で作成したドキュメントをWeb上でそのまま交換したいというケースは多くあるからだ。
もちろん、そうした場合にも、必ずしもデータベースを持ち出さなければならないというわけではない。サーバ上の特定の場所にファイル・アップロード用のスペースを用意し、ファイル・システム上でデータを管理するという選択肢ももちろんある。しかし、この方法では適切にアクセス権限を設定しないと、不特定多数のユーザーにアップロードしたファイルが見えてしまうという欠点がある。特にワークフロー上で交換するファイルは、ユーザーごとの細かなアクセス制御が必要となることが多く、ファイル・システム上で制御するには何かと設定が面倒だ。
そのような場合には、バイナリ・データをデータベース上で管理することを検討するとよい。いまさらいうまでもなく、データベースならば、ファイル・システム上にそのままファイルを配置するよりも安全であるし、アクセス権限も制御しやすい。
そこで本稿では、ブラウザ上からアップロードしたファイルをデータベースに登録する方法について紹介することにしよう。本稿のサンプルを利用するに際しては、あらかじめデータベースに以下のようなimage_dataテーブルを作成しておく必要がある。
| フィールド名 | データ型 | 概要 |
| id | INT | ドキュメントID(主キー/連番) |
| title | VARCHAR(100) | ファイル名 |
| type | VARCHAR(50) | MIMEタイプ |
| datum | IMAGE | バイナリ・データ |
| image_dataテーブルのフィールド・レイアウト | ||
それでは、具体的なコードを眺めてみよう。
|
|
| バイナリ・データをデータベースに登録するための.aspxファイル(C#の場合) |
|
|
| バイナリ・データをデータベースに登録するための.aspxファイル(VB.NETの場合) |
以上の.aspxファイルの実行結果は、以下のとおりだ。
![]() |
| サンプル・プログラムを実行したところ |
| [参照]ボタンで画像ファイル(この例では.jpgファイル)などのバイナリ・データを選択し、[アップロード]ボタンをクリックする。これにより、バイナリ・データがサーバ側にアップロードされ、データベースに格納される。 |
このWebページ上で画像ファイルなどのバイナリ・データを指定してアップロードしてみよう。以下のようにそのバイナリ・データがデータベースに登録されているのが確認できるはずである。
![]() |
| ブラウザで指定したファイルをデータベース側で確認 |
| ここではデータベースとしてMSDEを利用しているものとする。上の画面は、MSDEの中身をMicrosoft Accessのプロジェクト経由で参照したもの。プロジェクトについては、Windows TIPS「AccessをMSDEのフロントエンドとして利用する」を参照いただきたい。 |
上記のサンプル・コードをご覧いただいても分かるように、バイナリ・ファイルを扱うといっても、さほど難しいことではない。ポイントとなるのは、HttpPostedFileクラス(System.Web名前空間)のInputStreamプロパティを介して、アップロード・ファイルをいったんbyte配列に格納しておく必要がある点だ。byte配列に格納してしまえば、後は通常のテキストと同様の要領でデータベースに格納できる。
このようにしてデータベースに登録したデータを、再びWebフォーム上から呼び出す方法については、「TIPS:[ASP.NET]データベースに登録したバイナリ・データを表示するには?」で紹介している。![]()
| カテゴリ:Webフォーム 処理対象:データベース カテゴリ:Webフォーム 処理対象:ファイル・アップロード 使用ライブラリ:HttpPostedFileクラス(System.Web名前空間) 関連TIPS:[ASP.NET]データベースに登録したバイナリ・データを表示するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




