如何在PHP中使用fwrite设置文件的mime类型?

How to set the mime type of a file with fwrite in PHP?

提问人:Jorge Guberte 提问时间:9/13/2011 最后编辑:Jorge Guberte 更新时间:9/13/2011 访问量:1147

问:

我需要创建一个.xls文件并为其分配正确的mimetype。一个简单的语句不起作用,可能是因为我使用的是 PHPGtk。header()

MSOffice在打开文件时给了我一个错误,它说内容可能无法反映文件的扩展名,所以我立即认为这可能是因为mime类型。

目前,代码是(在一个非常畸形的 html 片段中):

$table = '<table><thead><tr><th>Oi</th></tr></thead><tbody><tr><td>opaopaopa</td></tr><tr><td>sjiasiaj</td></tr></tbody></table>';
      $handle = fopen('C:\opa.xls','w+');
      fwrite($handle, $table);
      fclose($handle);
php MIME 类型 fwrite php-gtk

评论

1赞 George Cummins 9/13/2011
此代码不需要 MIME 类型,因为文件已写入磁盘。您是否打算通过浏览器将文件输出给用户?
0赞 Jorge Guberte 9/13/2011
@George 否,文件将写入磁盘,不涉及浏览器。

答:

2赞 Brad 9/13/2011 #1

在 Windows 上,文件没有 MIME 类型。它们仅通过其扩展名进行标识。

评论

0赞 Jorge Guberte 9/13/2011
我问这个问题是因为 MSOffice 在打开文件时给了我一个错误,它说内容可能无法反映文件的扩展名,所以我立即认为这可能是因为 mime 类型。
3赞 Marc B 9/13/2011
@jorge:那是因为你正在编写一个html文件(没有适当的和标签,但将其命名为.xls。<html><body>
0赞 Herbert 9/13/2011
@Jorge:如果你把这些信息放在你的问题中,对每个人都是有利的。我不是在批评。这只是一个想法。
0赞 Jorge Guberte 9/13/2011
@Marc 是的,但是我可以将 MIME 设置为其他任何内容,以便 Office 不会对此嗤之以鼻吗?
1赞 Marc B 9/13/2011
不在文件本身上。您可以尝试将标签放入块中,但我不知道 Windows 或 Office 是否会在决定吐出该错误之前仔细研究该文件<meta><head>