如何使用 php 在文件上设置 mime 类型?

Posted

技术标签:

【中文标题】如何使用 php 在文件上设置 mime 类型?【英文标题】:How to set a mime type on a file with php? 【发布时间】:2013-01-20 22:33:20 【问题描述】:

我正在为一个类编写单元测试,需要生成一些具有不同 mime 类型的文件。

我知道在向远程用户发送文件时如何设置 mime-type (ala header()),但是在本地服务器上使用 fwrite() 时如何设置?

对于以这种方法生成的文件,mime-type 是直接从文件扩展名派生的吗?

我在 Ubuntu 12.04 上使用 php 5.3.x

【问题讨论】:

【参考方案1】:

文件没有 mime 类型。它们由文件扩展名标识。 mime 类型通常由/etc/mime.types 中的文件扩展名设置。 mime 类型所做的只是告诉客户端使用什么程序来打开文件。

【讨论】:

【参考方案2】:

mime-type 通常只适用于 Web 浏览器和电子邮件客户端,不适用于您的物理文件。只需创建具有正确扩展名的文件,Ubuntu 文件管理器就会相应地解释它。

【讨论】:

【参考方案3】:

mime-type 属于您的服务器或浏览器执行的 HTTP 请求。 如果您正在运行 Apache,您可以在 .htaccess 文件中为您的媒体文件设置默认的 mime-types。然后,您可以尝试使用 CURL 或 fsockopen 模拟请求返回您的文件,如果 mime 类型正确,请查看标头...以防万一您想在单元测试中确保 mime 类型正常工作。

【讨论】:

以上是关于如何使用 php 在文件上设置 mime 类型?的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 使用正确的 MIME 类型打开上传的 DOCX 文件

PHP,如何获得 Mime 类型 - 不可能的任务?

Mime 类型检测在 PHP 5.3.8 上使用 fileinfo 失败

设置 PHP Mime 类型?

PHP:如何正确检查文件的 MIME 类型?

如何为 Spring Boot/MVC 资源设置可识别的内容/MIME 类型?