2016-08-25 16 views
0

を介したすべてのファイルは、私は私のformで入力タイプのファイルを持っている、と私はExceptionに達することができるかどうかをテストするために最も使用される拡張子のすべての種類を与えるしました:なぜPHPExcel_IOFactoryを読むことができますか?ほとんど? HTMLリーダー

throw new PHPExcel_Reader_Exception('Unable to identify a reader for this file'); 

すべての私のテストではありませんPNG, JPG, GIF, PDF or TXTHTML Readerを使用し、読み取り可能である理由私は、思っていた

public function initExtract(SomeDeps $deps, array $document) 
    { 
     libxml_use_internal_errors(true); 
     $fileType = \PHPExcel_IOFactory::identify($document['tmp_name']); 
     $reader = \PHPExcel_IOFactory::createReader($fileType); 
     $this->excel = $reader->load($document['tmp_name']); 

     var_dump($reader, $this->excel); 
    } 

:HTMLリーダーを使用して一般的に使用される拡張機能のすべてが、他の人hereは私のコードで正しい期待されるリーダーを使用するenoughtので、決定的な? 提供されたドキュメントにHTML DOMが存在するかどうかを判断するために、このリーダーのテストがない理由はthis methodですか? ちょうど "<"で十分ではありませんIMO

私は何かを忘れましたか?上記の例外は本当に使用されていますか?どのような拡張機能ですか?

formValidationで確認する必要がある拡張機能を正確に判断するためのものです.PhPExcelが多すぎる可能性があるからです。

+0

私はなぜgifを扱うことができると期待しているのかについて洞察しています。 –

+0

入力ファイルは基本的にすべてのタイプのファイルを受け入れることができますが、PHPExcelコードで例外がスローされていることがわかりました。この例外をテストすることにしましたが、今例外をスローしません。 (この例外が投げられることはないとMark Ba​​kerのコメントを参照してください) – Hooli

答えて

1

本物OfficeOpenXMLファイル(のxlsx)はExcel5リーダーを使用する必要がありますExcel2007リーダー、本物のBIFF形式のファイル(XLS)を使用する必要があります....しかし、ファイルがxlsまたはxlsxの拡張子を持っているという理由だけで、意味するものではありませんそれが本物のBIFFまたはOfficeOpenXML形式ファイルであることを確認します。

PHPExcelがHTML形式のファイル(拡張子を問わず)を識別し、HTML Readerを使用する場合は、そのファイルをテキストエディタで開き、実際の内容を確認します。 HTMLはマークアップとして容易に読み込み可能です。本物のBIFF形式のxlsやOfficeOpenXML形式のxlsxファイルはバイナリなので、かなり異なっています。

私たちはsimplistic checkを持っているのですが、スプレッドシートファイルである可能性があるかどうかを気にせずにPHPExcelで想像できるようなファイルを投げ捨てることは期待していません。しかし、おそらくこれが私は不十分なIYOなら、あなたはより包括的な妥当性チェックを提供するためにチェック方法を変更して、それをPRとして提出することができます

+0

私はあなたが何を意味するのかを理解していると思いますが、私の質問に完全には答えていません。私はPRをしようとする可能性があります私はそれに取り組むことが面白いと思うことができる – Hooli

+0

ファイルがHTMLリーダーで読み取ることができない場合、CSVファイルはすべての場合にtrueを返しますので、例外は投げられません? – Hooli

+0

基本的にはい、CSVはキャッチオールです。これはほとんど不可能です(異なる区切り文字や引用符などは、CSVの検証チェックを入れるのが難しくなります)ので、特定のスプレッドシートファイルタイプとして明示的に検出されないものは、 CSVカテゴリ、および例外は決して到達しません –

関連する問題