2011-08-03 18 views
0

アップロードされたファイルがCSVファイルであるかどうかをテストしたい場合は、CSVファイルを選択してからこのコードで確認してください。 。アップロードされたファイルがCSVファイルであるかどうかを確認

if($_FILES["file"]["type"] <> "application/vnd.ms-excel"){ 
    die("This is not a CSV file."); 
} 
+7

csvファイルはExcelファイルではありません。 – marto

+0

戻ってくるタイプをダンプしてテストしてみませんか? –

+0

テキストファイルの場合は、CSVファイルであってもなくてもかまいません。あなたが本当にそれを解析しようとしているかだけ知ることができます。また、$ _FILES ['type'] 'は何もしないでください。完全に未確認のデータです。 – deceze

答えて

1

最も簡単なチェックは、「ファイル名は.csvで終了しますか?」です。これによりほとんどの方法が得られますが、誰かがCSV拡張機能で何か他のものをアップロードしようとする可能性があります。

次のチェックは、ファイルがテキスト(バイナリではなく、Excelファイルがこれで失敗する)であることを確認する必要があります。これを行うには、ascii representation of each character:キャリッジリターン、ラインフィード、タブ以外に、32未満の値はありません。

ファイルがテキストであることがわかったら、CSV parserで実行し、if結果はナンセンスか否かです。

+0

+1、許可された文字のリストにタブを追加したい場合があります。 –

+0

@アンダー:いいですね。私はテキストを修正しました。 –

関連する問題