1010namespace Zend \Validator \File ;
1111
1212use finfo ;
13- use Zend \Validator \Exception ;
13+ use Zend \Validator \File \ FileInformationTrait ;
1414
1515/**
1616 * Validator for the mime type of a file
1717 */
1818class ExcludeMimeType extends MimeType
1919{
20+ use FileInformationTrait;
21+
2022 const FALSE_TYPE = 'fileExcludeMimeTypeFalse ' ;
2123 const NOT_DETECTED = 'fileExcludeMimeTypeNotDetected ' ;
2224 const NOT_READABLE = 'fileExcludeMimeTypeNotReadable ' ;
@@ -41,29 +43,12 @@ class ExcludeMimeType extends MimeType
4143 */
4244 public function isValid ($ value , $ file = null )
4345 {
44- if (is_string ($ value ) && is_array ($ file )) {
45- // Legacy Zend\Transfer API support
46- $ filename = $ file ['name ' ];
47- $ filetype = $ file ['type ' ];
48- $ file = $ file ['tmp_name ' ];
49- } elseif (is_array ($ value )) {
50- if (! isset ($ value ['tmp_name ' ]) || ! isset ($ value ['name ' ]) || ! isset ($ value ['type ' ])) {
51- throw new Exception \InvalidArgumentException (
52- 'Value array must be in $_FILES format '
53- );
54- }
55- $ file = $ value ['tmp_name ' ];
56- $ filename = $ value ['name ' ];
57- $ filetype = $ value ['type ' ];
58- } else {
59- $ file = $ value ;
60- $ filename = basename ($ file );
61- $ filetype = null ;
62- }
63- $ this ->setValue ($ filename );
46+ $ fileInfo = $ this ->getFileInfo ($ value , $ file , true );
47+
48+ $ this ->setValue ($ fileInfo ['filename ' ]);
6449
6550 // Is file readable ?
66- if (empty ($ file ) || false === is_readable ($ file )) {
51+ if (empty ($ fileInfo [ ' file ' ] ) || false === is_readable ($ fileInfo [ ' file ' ] )) {
6752 $ this ->error (self ::NOT_READABLE );
6853 return false ;
6954 }
@@ -80,12 +65,12 @@ public function isValid($value, $file = null)
8065
8166 $ this ->type = null ;
8267 if (! empty ($ this ->finfo )) {
83- $ this ->type = finfo_file ($ this ->finfo , $ file );
68+ $ this ->type = finfo_file ($ this ->finfo , $ fileInfo [ ' file ' ] );
8469 }
8570 }
8671
8772 if (empty ($ this ->type ) && $ this ->getHeaderCheck ()) {
88- $ this ->type = $ filetype ;
73+ $ this ->type = $ fileInfo [ ' filetype ' ] ;
8974 }
9075
9176 if (empty ($ this ->type )) {
0 commit comments