0

アップロードメカニズムを作成しました。次に、アップロードしたファイルを表示できるページを作成します。ただし、ブラウザに表示したいのです(画像、PDFなどのブラウザでサポートされているファイルしかありません)。

私の推測では、いくつかのヘッダーを設定し、ファイルのバイトを出力するだけでこれを行うことができます。しかし、私が知る限りContent-type、コンテンツを正しく表示するにはヘッダーを設定する必要があります。ファイルのコンテンツタイプを取得するにはどうすればよいですか?mime-typeと同じですか?

4

5 に答える 5

2

ブラウザ自体で多くの異なるファイルタイプを処理するために、非推奨のMIMEContent -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

この問題に対して私が行った最善の解決策は、Apacheのインデックスを使用し、いくつかのスタイルを適用することです。ApacheのインデックスオプションFancyIndexingを確認すると、必要な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 に答える
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 に答える