0

我已经建立了一个上传机制,现在我想创建一个页面,让您查看您上传的文件。但是,我想在浏览器中显示它们(我只有浏览器支持的文件,如图像、PDF 等)。

我的猜测是我可以通过只设置一些标题并打印文件的字节来做到这一点。但据我所知,我需要设置Content-type标题才能正确显示内容。如何获取文件的内容类型?它和mime类型一样吗?

4

5 回答 5

2

为了在浏览器本身中处理许多不同的文件类型,您可以使用已弃用的MIME Con​​tent-type的帮助。

或者你也可以使用finfo-file它也返回关于文件的信息。

于 2012-08-14T09:57:24.383 回答
1

是的,它的 MIME 类型。在以下位置查找列表

http://en.wikipedia.org/wiki/MIME_type

于 2012-08-14T09:51:06.007 回答
1

您必须阅读文件的内容,打印适当的标题并回显内容。如果浏览器检测到它可以显示这些文件类型,它将显示它们,否则它将提示用户保存到本地系统。该代码将类似于下面指定的代码段:

header('Content-disposition: attachment; filename=huge_document.pdf');
header('Content-type: application/pdf');
readfile('file1.pdf');
于 2012-08-14T10:03:06.217 回答
0

尝试这个:

$file = file_get_contents($_FILES['myupload']['tmp_name'];
$type = $_FILES['myupload']['type'];

header("Content-Type: ".$type);
echo $file;

它可能无法完全发挥作用,但它是一个起点。

于 2012-08-14T09:58:08.147 回答
0

我为这个问题制定的最佳解决方案是使用 Apache 的索引并应用一些样式FancyIndexing,查看Apache Indexing Options,您可以显示您想要的 MIME。

.htaccess

<IfModule mod_autoindex.c>
        IndexOptions FancyIndexing 
        IndexOptions VersionSort 
        IndexOptions HTMLTable 
        IndexOptions FoldersFirst 
        IndexOptions IconsAreLinks 
        IndexOptions IgnoreCase 
        IndexOptions SuppressDescription 
        IndexOptions SuppressHTMLPreamble 
        IndexOptions XHTML 
        IndexOptions IconWidth=16 
        IndexOptions IconHeight=16 
        IndexOptions NameWidth=*
        IndexOrderDefault Descending Name
        HeaderName /style/header.php
        ReadmeName /style/footer.php
</ifModule>
于 2012-08-14T09:56:05.477 回答