*.cppソースファイルのアップロードを可能にする単純なPHPスクリプトを設計しています。基本的なセキュリティ対策として、一時ファイルを永続的な場所に移動する前に、一時ファイルのMIMEタイプを確認します。file --mime myfile.cpp
ターミナル(Mac OS X)で実行すると、として表示されtext/x-c
ます。application/octet-stream
それでも、サーバーはそれを何らかの理由でと見なします。「/etc/mime.types
cpp」拡張子にはtext/x-c++src
、MacのMIMEタイプの問題であると私が信じるような拡張子があります。
Ubuntuから同じ手順を試しましたが、正常に動作します(として表示されますtext/x-c++src
)。両方のコンピューターでChromeを使用しています。
それ自体はプログラミングの問題ではありませんが、これには私がよく知らないPHPのトリックがあるかもしれません。
$temp_file=$_FILES["file"]["type"];
if(($temp_file!="text/x-c++src")||($temp_file!="text/x-c")) {
echo "<p style=\"color:red;font-style:italic\">Please upload a valid C++ file.</p>";
}