我有一个ASP.Net应用程序,它需要显示存储在Filemaker字段中的图像。我的查询语句看起来如下:
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”结果
‘'PNTG’MacPaint
“FPix”闪存
‘'qtif’QuickTime图像文件
“fork”资源叉(Mac )
“.SGI”通用位图格式
“GIFf”图形交换格式
标准声音(Mac原始格式)
“‘JPEG”图片
数字图像的“‘TIFF”栅格文件格式
“JP2”JPEG 2000
“‘TPIC”Targa
“‘META”Windows元文件(增强)
‘'XMLO’布局对象
“‘METO”Windows元文件(原件)
'8BPS‘PhotoShop (私营部门)
‘'moov’旧QuickTime格式(Mac )
因此,有了这些信息,我的问题是:
任何建议都将不胜感激!
发布于 2009-11-18 15:28:35
谢谢,但我想我知道发生了什么。如果我在图像表和另一个表之间做了一个内部连接,图像就不会被返回(或者被返回properly...not确定是哪个)。当我直接对图像表运行查询时,就会返回图像。
因此,这不起作用:从biography_table b内部联接image_table i选择* b.stocknumber = i.stocknumber,其中b.stocknumber = 12345
但是这样做:从image_table中选择*,其中的股票号= 12345
这意味着我必须运行两个单独的查询,但至少我看到了数据!!
发布于 2011-05-04 23:40:09
如果无法预测文件类型,并且/或需要使用其他扩展名(如docx、xlsx等),则可以对所有存储和检索脚本独占使用“file”。
但是,这样做意味着FileMaker不知道如何处理和打开文件。换句话说,在使用FileMaker时,您需要手动导出字段的内容来编辑/查看它,而不是只需双击字段就可以打开文件。因此,设置要么有利于FileMaker,要么有利于您的外部应用程序。
如果这样做,容器字段中的所有文件都将被称为“Untitled.dat”,它们的内部名称将是“?”,因此您还需要将实际的文件名或其扩展名存储在另一个字段中,以便以后可以打开它。
发布于 2016-04-30 21:23:34
这是因为您使用的是JPG而不是JPEG,事实上,您的问题是自己回答的。你可以这样读
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是照片字段的索引。
https://stackoverflow.com/questions/1724415
复制相似问题