ブラウザからデータベースへのメディア・ファイルのアップロード処理は、次の2つのステップに分けることができます。
最初のステップではHTMLフォームが必要です。フォームには、ENCTYPE="multipart/form-data"属性が必要です。フォーム内では、ファイル名の入力にFILE INPUT要素が使用されます。次に例を示します。
<FORM ACTION="handleUpload.jsp" METHOD="POST" ENCTYPE="multipart/form-data">
Id: <INPUT TYPE="TEXT" NAME="id" LENGTH=10>
Description: <INPUT TYPE="TEXT" NAME="description" LENGTH=40>
Photo: <INPUT TYPE="FILE" NAME="photo" LENGTH=40>
<INPUT TYPE="SUBMIT" TEXT="SUBMIT">
</FORM>
ユーザーがすべての情報をフォームに入力して送信ボタンをクリックすると、ファイルのコンテンツとその他の情報が、multipart/form-dataコンテンツ・タイプを使用してHTTP POSTリクエストとしてWebサーバーに送信されます。HTTPリクエストを処理するために、JSPページhandleUpload.jsp
が起動されます。次に2番目のステップに進みます。
2番目のステップでは、OrdHttpUploadFormDataおよびOrdHttpUploadFileを使用して、ファイル・コンテンツとその他の情報を取得します。 次に、OrdImageDomain.setContentSource()
メソッドを使用してOrdHttpUploadFileSource
を設定します。最後に、commit()
メソッドをコールし、コンテンツをロードして変更内容をコミットします。
次のサンプルは、アップロードしたコンテンツの問合せ方法を示しています。
//
// Create an OrdHttpUploadFormData object and use it to parse the
// multipart/form-data message.
//
OrdHttpUploadFormData formData = new OrdHttpUploadFormData( request ); formData.parseFormData();
//
// Get the description, location, and photo.
//
String id = formData.getParameter( "id" );
String description = formData.getParameter( "description" );
OrdHttpUploadFile photo = formData.getFileParameter( "photo" );
//
// Create a new row
//
Row row = viewObject.createRow();
//
// Create a new OrdImageDomain object
//
OrdImageDomain img = new OrdImageDomain();
//
// Use photo as the content source for deferred loading
//
img.setContentSource(new OrdHttpUploadFileSource(photo));
//
// Set other attributes
//
row.setAttribute("Image", img);
row.setAttribute("Id", id);
row.setAttribute("Description", description);
//
// Insert the row into the View Object
//
vo.insertRow(row);
//
// Load the content from photo to the database and
// commit the changes.
//
appModule.getTransaction().commit();
Copyright © 1997, 2004, Oracle. All rights reserved.