使用资源管理器以编程方式在DAM中上传文件?我应该使用什么 MimeType



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

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

我尝试了"应用程序/八位字节流",但 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.

我使用以下链接尝试了这个

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

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

如果你没有文件名,你需要像Apache Tika Detector这样的东西,它分析二进制文件以尝试猜测它的mimetype。我不知道CQ是否提供这样的开箱即用的服务,但如果没有,你可以自己集成它。

编辑:

基于 Magic 标头链接检查 MIMEType 的 API

了解上述问题的有用链接

链接

最新更新