2017-03-07 6 views
-2

J'ai un fieldset qui implémente InputFilterProviderInterface. Ma fonction getInputFilterSpecification ressemble à ceci:stream_resolve_include_path retournant false?

public function getInputFilterSpecification() { 
    $validator = new \Zend\Validator\File\Extension([ 
     'jpg', 
     'jpeg', 
     'png', 
     'gif', 
    ]); 
    return [ 
     [ 
      'name' => 'logo', 
      'required' => false, 
      'validators' => [ 
       $validator, 
      ], 
     ], 
    ]; 
} 

Comme vous pouvez le deviner, je suis en train de valider le transfert de fichiers par extension.

Mon problème est que le validateur donne le message d'erreur

fichier est illisible ou n'existe pas

En regardant dans la classe Extension j'ai trouvé la fonction qui est à l'origine du problème: stream_resolve_include_path($file) . Quand je var_dump$file je reçois la sortie suivante:

C: \ Windows \ Temp \ php6BE7.tmp

Alors ... Pourquoi stream_resolve_include_path parvient pas à résoudre ce chemin? Comment je le répare?

Ceci est actuellement exécuté sur une machine virtuelle Windows. Est-ce une partie du problème? c'est-à-dire que la fonction ci-dessus ne fonctionne que sur des systèmes d'exploitation compatibles?

Répondre

0

Solution à court terme - étendre le validateur et remplacer la fonction isValid.

Trouver la ligne:

if (empty($file) || false === stream_resolve_include_path($file)) {

et le remplacer par:

if (empty($file) || false === is_file($file)) {