2

Filemaker Container フィールドに保存されている画像を表示する必要がある ASP.Net アプリケーションがあります。私のクエリステートメントは次のようになります。

SELECT GetAs(Image, 'JPG') FROM UA_Item_Pictures WHERE "Stock Number" = 33989 AND ImageOrder = 1

ドキュメントによると: FileMaker データベースファイルのオブジェクトフィールドから取得できるファイルタイプ (大文字と小文字を区別) は次のとおりです。

'EMBO' OLE コンテナ データ

「PDF」ポータブル ドキュメント形式

「EMF+」Windows 拡張メタファイル プラス

「PICT」Mac OS (512 バイトのファイルベースのヘッダーがありません)

'EPS' 埋め込み PostScript

'PNGf' ビットマップ画像フォーマット

'FILE' Insert File コマンドの結果

「PNTG」マックペイント

「FPix」フラッシュ (FPX)

「qtif」QuickTime 画像ファイル

「FORK」リソースフォーク (Mac OS)

'.SGI' 汎用ビットマップ形式

「GIFf」グラフィック交換フォーマット

'snd' 標準サウンド (Mac OS raw フォーマット)

「JPEG」写真画像

デジタル画像の「TIFF」ラスターファイル形式

「JP2」 JPEG 2000

「TPIC」タルガ

「META」Windows メタファイル (拡張)

「XMLO」レイアウト オブジェクト

'METO' Windows メタファイル (オリジナル)

'8BPS' フォトショップ (PSD)

「moov」古い QuickTime 形式 (Mac OS)

したがって、この情報を使用して、私の質問は次のとおりです。

  1. 複数の形式のコンテンツを取得するにはどうすればよいですか?
  2. BLOG をページ上の画像にレンダリングするにはどうすればよいですか?

どんな提案でも大歓迎です!

4

4 に答える 4

0

ファイルの種類を予測できない場合、および/または他の拡張子 (docx、xlsx など) を使用する必要がある場合は、すべての保存および取得スクリプトに「FILE」のみを使用できます。

ただし、この方法では、FileMaker がファイルを処理して開く方法をネイティブに認識していないことを意味します。つまり、FileMaker を使用する場合、フィールドをダブルクリックしてファイルを開くのではなく、フィールドの内容を手動でエクスポートして編集/表示する必要があります。したがって、設定が FileMaker に有利か、外部アプリケーションに有利かのいずれかです。

このようにすると、オブジェクト フィールド内のすべてのファイルは「Untitled.dat」と呼ばれ、それらの内部名は「?」になるため、実際のファイル名またはその拡張子を別のフィールドに格納する必要があります。後で開きます。

于 2011-05-04T23:40:09.077 に答える
0

これは、JPEG の代わりに JPG を使用しているためです。実際、質問自体に答えがあります。このように読めます

SELECT GetAs(Image, 'JPEG') ...

そして、ado.netを使用している場合は、このように読んでください

var bytesLength = reader.GetBytes(0, 0, null, 0, 0);
var buffer = new Byte[bytesLength];
var bytes = reader.GetBytes(0, 0, buffer, 0, (int)bytesLength);
using (var fileStream = new FileStream(String.Format("{0}.jpg", Guid.NewGuid().ToString()), FileMode.Create, FileAccess.Write)) {
    fileStream.Write(buffer, 0, buffer.Length);
}

GetBytes 関数の先頭の 0 は、写真フィールドのインデックスです。

于 2016-04-30T21:23:34.933 に答える
0

ありがとう、でも何が起こっているのか分かった気がする。画像テーブルと別のテーブルの間で内部結合を行った場合、画像が返されませんでした (または適切に返されました... どちらかわかりません)。画像テーブルに対して直接クエリを実行するとすぐに、画像が返されました。

したがって、これは機能しませんでした: select * from biography_table b inner join image_table i on b.stocknumber = i.stocknumber where b.stocknumber = 12345

ただし、次のようになります: select * from image_table where stocknumber = 12345

これは、2 つの別々のクエリを実行する必要があることを意味しますが、少なくともデータが表示されています!!

于 2009-11-18T15:28:35.207 に答える
-1

SuperContainer (恥知らずな警告: 私も作成者の 1 人です)のライセンスと、それをホストする Mac Mini を購入します。ファイルをオブジェクト フィールドから SuperContainer に移動し、OS X の CoreImage ライブラリを利用して、SuperContainer がファイルのイメージ バージョンをレンダリングできるようにします。

于 2009-11-18T03:10:50.217 に答える