使用AssetManager以编程方式在DAM上载文件?我应该使用什么MimeType?

时间:2014-11-27 14:02:51

标签: java mime-types cq5 sling

我有一个将文件上传到SlingServlet的表单。 SlingSerlvet接收文件并尝试使用com.day.cq.dam.api.AssetManager将文件保存在DAM中(即以编程方式在DAM中保存文件)

MIME类型出现问题。用户可以上传pdf,xls,doc等,因此Type不是固定的。我不知道将MIME类型设置为什么(请参阅第三个参数xxx)assetMgr.createAsset(newFile, is,"xxx", true);

我尝试了“application / octet-stream”,但CQ忽略了类型说资源被忽略。

日志:

27.11.2014 18:58:48.595 *INFO* [JobHandler: /etc/workflow/instances/2014-11-27/model_879500607401687:/content/dam/videojetdocuments/videojetdocuments/offerletters/Präsentation_Dominik_Suess.pdf/jcr:content/renditions/original] com.day.cq.dam.video.FFMpegThumbnailProcess execute: asset [/content/dam/videojetdocuments/videojetdocuments/offerletters/Präsentation_Dominik_Suess.pdf] is not of a video mime type, asset ignored.
27.11.2014 18:58:48.596 *INFO* [JobHandler: /etc/workflow/instances/2014-11-27/model_879500607401687:/content/dam/videojetdocuments/videojetdocuments/offerletters/Präsentation_Dominik_Suess.pdf/jcr:content/renditions/original] com.day.cq.dam.video.FFMpegTranscodeProcess execute: asset [/content/dam/videojetdocuments/videojetdocuments/offerletters/Präsentation_Dominik_Suess.pdf] is not of a video mime type, asset ignored.

我使用以下link

尝试了此操作

此类文件是否有任何通用MIME类型?

1 个答案:

答案 0 :(得分:1)

您可以使用Apache Sling MimeTypeService根据传入的文件名计算mimetype。另请参阅http://sling.apache.org/documentation/bundles/mime-type-support-commons-mime.html

如果您没有文件名,那么您需要Apache Tika Detector这样的内容,它会分析二进制文件以尝试猜测其mimetype。我不知道CQ是否提供开箱即用的服务,但如果它不能自己整合它。

修改

基于Magic标头Link

检查MIMEType的API

有助于理解上述问题Link

的链接