【问题标题】:Specify content-type for documents uploaded in Magnolia指定在 Magnolia 中上传的文档的内容类型
【发布时间】:2011-11-25 19:56:12
【问题描述】:

我们已将 mp4 视频文件上传到 Magnolia DMS,但无法在 Safari (Mac/iPad) 上播放。调查显示 Magnolia 返回的 Content-Type 是请求的“application/octet-stream”。直接通过 Tomcat 提供文件时,返回正确的 Content-Type "video/mp4",视频播放正常。

我们如何配置要在 Magnolia 中返回的内容类型?

我们知道 content-type 是请求的函数(例如,如果我们在 URL 中添加“.jpg”,则返回的类型是“image/jpeg”),但无法利用这些知识提出一个解决方案。

更新:

我们找到了 MIME 配置,可以将“mp4”的 Content-Type 更改为“video/mp4”。但是,Magnolia 返回的 Content-Type 现在是

内容类型:video/mp4;charset=UTF-8

虽然为 Tomcat 托管的文件返回的正确、有效的 Content-Type 是

内容类型:视频/mp4

是否可以让 Magnolia 不向 Content-Type 附加任何字符集信息?

【问题讨论】:

    标签: safari content-type mp4 magnolia


    【解决方案1】:

    很高兴您发现 MIME 配置正常。

    MIME 类型和字符编码都在 ContentTypeFilter.javaMIMEMapping.java 中设置。您可以通过将 MIME 类型包含在 mime 类型定义中来自己指定字符集。 (例如“video/mp4;charset=UTF-8”。)

    但是,如果您不包含一个,Magnolia 会自动分配默认值(在本例中为 UTF-8)。如果你想改变这种行为,你需要调整源代码。

    出于好奇,字符集是否会给您带来任何麻烦,或者您只是想让 Magnolia 与 Tomcat 的默认设置相匹配?

    【讨论】:

    • 干杯.. 我们不知道它是否真的是导致麻烦的字符集,我们所知道的是,一旦我们将 mp4 上传到 Magnolia,它就无法在 Safari/Mac 上播放。明显的区别是 MIME 类型,但在这一点上我们怀疑它是别的东西。
    • 你玩的怎么样? Magnolia 还添加了一个“Content-Disposition”标头,该标头有时会导致内联内容出现问题。不过,您可以将其关闭:documentation.magnolia-cms.com/modules/dms.html(请参阅“按 MIME 类型禁用 Content-Disposition 标头”)
    • 我们通过 html5 video 标签播放文件。我们尝试关闭每个内容类型和每个路径的“Content-Disposition”,但它仍然位于标题中的“Content-Disposition attachment; filename="video.mp4"”。由于 ipad 上有一些 BYTE_RANGE_ERROR_MESSAGE,经过更多研究,我们发现 Safari/iOS“使用 HTTP 字节范围来请求音频和视频文件”。现在我们猜测 Magnolia DMS 文件服务不支持此功能,因此流式传输失败。
    • 啊,没错。 Magnolia 目前不支持字节范围请求。我已经向 Jira 添加了一张票以添加该票:jira.magnolia-cms.com/browse/MGNLDMS-215
    • 刚刚检查,问题已修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多