2010-04-20 71 views
0

我目前有一个FileUpload.mxml组件,它将.m4a上载到oracle数据库,从文件中检索元数据并保存数据库中的元数据信息。在flex中上传m4a文件,并将其保存为oracle中的blob,并从中检索元数据信息

为了实现这个我用FileReference()设置了其他的,dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,completeHandler);

因此,该文件发布到一个PHP文件,它将其保存为blob。一旦blob被保存,脚本就会发送一条消息回到flex来分派upload_complete_data事件。

在完整的处理程序中,元数据通过从数据库中读取数值读取到定制的元数据读取器中而被回收。元数据信息然后通过flex保存。

这似乎有点长啰。有没有其他人使用不同的方式成功实现了这一点?

+0

哪个数据库版本? ORDAudio对象类型提供了用于提取元数据的对象方法。 – 2010-04-20 07:17:28

+0

嗨加里,谢谢你的回复。我们使用Oracle数据库11g企业版版本11.2.0.1.0 - 64位生产。 – Angus 2010-04-23 04:09:50

回答

1

充实了上面的注释,我在名为LOADED_FILE的表中有一个BLOB(称为CON​​TENT)。 我将其转换为OrdAudio(与setProperties方法标志设置为true,因为它是要提取的属性),然后提取元数据的比特:

select a.content.getAudioDuration() , 
     a.content.getCompressionType(), 
     a.content.getEncoding() , 
     a.content.getMimeType(), 
     a.content.getNumberOfChannels(), 
     a.content.getSampleSize() , 
     a.content.getSamplingRate() 
from (select ordsys.ordaudio(content,1) content from loaded_files) a; 

在适当的应用程序,我可能会存储它作为OrdAudio而不是一个普通的blob。

+0

我不确定ordaudio可以提取我感兴趣的元数据,例如音轨标题,流派等来自m4a的元数据。我知道它支持元数据的存储。 – Angus 2010-04-23 05:05:16

相关问题