如何使用 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 文件