调用自定义downloadFile函数下载PPTX文件时丢失扩展名的问题排查
问题原因解析
这个问题的核心在于浏览器对不同MIME类型的扩展名映射支持差异,结合你提供的函数实现逻辑,具体原因如下:
首先,
application/pdf是通用且高度标准化的MIME类型,几乎所有主流浏览器都内置了它与.pdf扩展名的关联映射。当你设置download属性的文件名不带扩展名时,浏览器会自动根据Blob的MIME类型补上.pdf后缀,因此PDF文件能正常下载并带有正确扩展名。而PPTX对应的MIME类型
application/vnd.openxmlformats-officedocument.presentationml.presentation属于Office Open XML格式的专属类型,这个MIME字符串较长且不属于通用基础类型,部分浏览器并没有内置该MIME类型到.pptx扩展名的映射规则。如果你的fileName参数没有明确包含.pptx后缀,浏览器无法自动推断出正确的扩展名,最终下载的文件就会丢失.pptx后缀。再看你的
downloadFile函数实现:它完全依赖传入的fileName参数来设置下载文件名,没有添加任何根据options.type自动补充对应扩展名的逻辑。如果调用函数时没有给fileName加上.pptx,同时浏览器又不识别该MIME类型的映射,就会出现无后缀的问题。
内容的提问来源于stack exchange,提问作者Alopwer
相关产品推荐
相关产品推荐

