0

フォームにファイルをアップロードしていますが、「theManifest.manifest」または「theManifest.appcache」という名前のファイルをアップロードすると、MIME タイプが正しくありません。

php コードで「echo」を使用して、アップロードされたファイルの詳細を教えてくれます。コードは次のとおりです。

 <form enctype="multipart/form-data" action="file-upload.php" method="POST">
   Upload the manifest file:<input type="file" name="uploaded" id="id_upload" />
   <input type="submit" value="Upload" />
 </form>

ファイルが何であるかを示すphpコードは次のとおりです。

    echo "<br> The file that was uploaded is as follows:";
    echo "<br>uploaded_name = " . $_FILES['uploaded']['name'];
    echo "<br>uploaded_size = " . $_FILES['uploaded']['size'];
    echo "<br>uploaded_type  = " . $_FILES['uploaded']['type'];
    echo "<br>uploaded_tmp_name = " . $_FILES['uploaded']['tmp_name'];
    echo "<br>uploaded_error = " . $_FILES['uploaded']['error'];

これが私が得る出力です:

The file that was uploaded is as follows:
uploaded_name = theManifest.appcache
uploaded_size = 51
uploaded_type = application/octet-stream
uploaded_tmp_name = C:\xampp\tmp\php4064.tmp
uploaded_error = 0;

Windows Vista で実行されている Firefox 8 が、.manifest ファイルと .appcache ファイルの両方が "application/octet-stream" の MIME タイプであると考える理由がわかりません。

これは、この問題をテストするために時々 .manifest に名前を変更した .appcache ファイルの内容です。

#This is a blank, test-cases-only, .manifest file.

これは、コメント (.manifest スタイルのコメント) だけを含むテキスト ファイルです。

ここで MIME タイプが「application/octet-stream」である理由は何かわかりますか ???

上記のコードで報告されている正しいMIME タイプは、私の知る限り「text/cache-manifest」であり、「application/octet-stream」ではありません。

4

1 に答える 1

1

お使いのコンピューター (または Firefox) がファイル拡張子.appcache.manifestMIME タイプを関連付けている可能性は低いですtext/cache-manifest。そして、それはおそらく重要ではありません。

ブラウザがファイルをダウンロードするとき、これは非常に重要です。正しい MIME タイプがないと、ブラウザはファイルを appcache マニフェストとして扱わないからです。

ただし、ファイルのアップロードの場合、MIME タイプは、少なくとも通常は、appcache マニフェストにとって重要ではない可能性が非常に高くなります。

于 2011-12-23T05:28:44.333 に答える