我有一个将文件上传到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类型?
答案 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
的链接