2017-05-31 1 views
1

J'ai créé un formulaire avec des champs de téléchargement de fichiers et a essayé de télécharger le fichier comme suit:Erreur lors du chargement d'un fichier dans zend framework2

$adapter = new \Zend\File\Transfer\Transfer(); 
    $adapter->addValidator(‘Count’,false, array(‘min’=>1, ‘max’=>3)) 
    ->addValidator(‘Size’,false,array(‘max’ => 10000)) 
    ->addValidator(‘Extension’,false,array(‘extension’ => ‘txt’,’case’ => true)); 

    $adapter->setDestination('images/'); 

    $files = $adapter->getFileInfo(); 

    foreach($files as $fieldname=>$fileinfo) 
    { 
    if (($adapter->isUploaded($fileinfo[name]))&& ($adapter->isValid($fileinfo[‘name’]))) 
    { 
    $adapter->receive($fileinfo[name]); 
    //then, store links etc in db for retrieval later.. 
    } 

    } 
    var_dump($adapter->getMessages()); 

et j'ai l'erreur:

Zend\File\Transfer\Adapter\ValidatorPluginManager::get was unable to fetch or create an instance for ‘Count’ 

Comment je peux résoudre ceci et le rendre réalisable?

+0

@ Dymen1 avez-vous une solution pour cela? – Shoaib

+0

Quand recevez-vous ce message d'erreur? Lorsque l'adaptateur est créé ou lorsqu'un fichier est téléchargé? – akond

+0

lorsque le fichier est téléchargé générer cette erreur et ne pas télécharger le fichier – Shoaib

Répondre

0

Il y a quelques erreurs dans votre code. Tout d'abord new \Zend\File\Transfer\Transfer(); n'est pas un adaptateur mais un gestionnaire d'adaptateur de transfert.

Vous ne devriez pas nommer votre variable avec ceci. Corrigeons et expliquons.

//We initialize the transfer adapter manager 
    $transferService = new \Zend\File\Transfer\Transfer(); 
    //We fetch the matching adapter 
    //the doc says that the param is to be set to true to fetch upload adapter, false for download adapter, null for both. 
    //For us it's true 
    $adapter = $transferService->getAdapter(true); 

    //Now the rest should be working fine 

    $adapter->addValidator(‘Count’,false, array(‘min’=>1, ‘max’=>3)) 
    ->addValidator(‘Size’,false,array(‘max’ => 10000)) 
    ->addValidator(‘Extension’,false,array(‘extension’ => ‘txt’,’case’ => true)); 

    $adapter->setDestination('images/'); 

    $files = $adapter->getFileInfo(); 

    foreach($files as $fieldname=>$fileinfo) 
    { 
    if (($adapter->isUploaded($fileinfo[name]))&& ($adapter->isValid($fileinfo[‘name’]))) 
    { 
    $adapter->receive($fileinfo[name]); 
    //then, store links etc in db for retrieval later.. 
    } 

    } 
    var_dump($adapter->getMessages()); 

Puisque la documentation n'est pas vraiment complète à ce sujet, vous devriez vraiment creuser le code et voir comment c'est fait. C'est vraiment rapide à comprendre.

Espérons que cela a aidé

+0

ne fonctionne pas encore ... – Shoaib

+0

Quelle est l'erreur maintenant? Quelque chose a changé? – Unex

+0

Appel à une fonction membre addValidator() sur null .. @Unex – Shoaib