形式にかかわらず、すべてのファイルタイプ (画像、音声、動画、PDF、Excel など) を格納または参照します。データはローカルに格納することも、任意の
外部ストレージメディアを使用することもできます。
プロパティとメソッドは、
Image データタイプ、
Audio データタイプ、
Video データイプと同様です。
FileName |
ファイル名を取得します (Character)。ファイルのベース名を参照します。すなわち、拡張子は返しません。 |
FileType |
ファイルタイプを取得します。ファイルの拡張子を示します: txt、jpg、pdf など。
拡張子は ContentType と同じでないことに注意してください。ContentType は、ブラウザーが解釈する HTTP ヘッダーです。例: application/json、image/jpg、text/JavaScript、text/css。
また、FileType に基づいて ContentType をプログラムで設定できます。(例: FileType="html" の場合 ContentType="text/html")。 |
FileURI |
FileURI を設定または取得します。
設定:
相対パスを設定できます。これは現在のホスト内で解決されます。
file:// プロトコルでローカルパスを設定できます。
[ URI ] プロパティを設定すると、DB に格納されている内部バイナリファイルが空に設定されます。
例:
&Blobfile.FromURL(myFileWillbeErasedInNextLine)
&Blobfile.FileURI = "http://www.myfiles/file.pdf"
この場合、この .pdf ファイルがデータ内のファイルになります。
取得:
常にファイルの絶対 URI を返します。
|
FromURL(FileURL) |
FileURL パラメーターで指定したファイルを現在のインスタンスにロードします。
ファイルを保持している内部バイナリが、指定する FileURL からロードされます。
このメソッドの呼び出し後は、指定する FileURL のファイル名と拡張子が [ URI ] プロパティに保持されます。
例:
&Blobfile.FromURL('www.myfiles.com/myfile.pdf')
msg(&Blobfile.FileURI) // will print myfile.pdf
|
SetEmpty/IsEmpty |
|
ファイルは、FromURL メソッドを使用して URI (ローカルまたはリモート) からロードできます。FromURL に渡す値がリモート URL の場合、ファイルがダウンロードされ、必要に応じて DB に保存されます。
リモートまたはローカルにあるファイルを参照するだけの場合は、 [ URI ] プロパティを割り当てるだけです。
BlobFile データタイプは、DB では自動的に複数のフィールドを使って格納されます (
Image データタイプ、
Audio データタイプ、
Video データタイプと同様)。
DB に保存される構造は次のとおりです:
- Attribute_Name (ここにバイナリが格納される)
- Attribute_Name_GXI (URI が格納される) (GXI = GeneXus 識別子)
URI が割り当てられる場合、Attribute_Name_GXI は外部ファイルであると想定されます (この場合、完全な URI が格納される)。FromURL メソッドを使用してファイルがロードされた場合は、相対パスが保存されます (ファイルの名前とタイプが分かる)。
ファイルが格納されると、ファイル名が次のように GXI フィールドに格納されます:
gxdbfile: <file name> _ <token>.<file extension>
接頭語 "gxdbfile:" は、相対 URL ではなく、ファイルであることを GeneXus に指示します。
トークンによって、ファイルを一意に識別することができます。GeneXus によって GUID が生成されます。
Blob と BlobFile の各データタイプの違いは、データベースに格納される方法です。BlobFile は任意の
外部ストレージに格納できますが、Blob データタイプは外部ストレージに保存できません。
次の再編成がサポートされています:
- Blob から BlobFile -> バイナリファイルがコピーされ、元の Blob ファイルの名前から GXI_Attribute_Name が取得されます。
- Character から BlobFile -> 文字項目属性から GXI_Attribute_Name が設定されます。
- BlobFile から Blob -> GXI_Attribute_Name フィールドが削除されます。
- BlobFile から Character -> 可能な場合は、GXI_Attribute_Name の値を使用してフィールドが割り当てられます。それ以外の場合は空のまま残されます。