File upload 在zend framework2中上载文件时出错

File upload 在zend framework2中上载文件时出错,file-upload,zend-framework2,adapter,File Upload,Zend Framework2,Adapter,我创建了一个带有文件上载字段的表单,并尝试按如下方式上载文件: $adapter = new \Zend\File\Transfer\Transfer(); $adapter->addValidator(‘Count’,false, array(‘min’=>1, ‘max’=>3)) ->addValidator(‘Size’,false,array(‘max’ => 10000)) ->addValidator(‘Exten

我创建了一个带有文件上载字段的表单,并尝试按如下方式上载文件:

    $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());
我得到了一个错误:

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

如何解决这个问题并使其可行?

您的代码中有一些错误。首先
new\Zend\File\Transfer\Transfer()不是适配器,而是传输适配器管理器

你不应该用这个来命名你的变量。让我们纠正并解释一下

    //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());
由于这个主题的文档并不完整,所以您应该深入研究代码,看看它是如何完成的。理解起来真的很快


希望这有帮助

您的代码中有一些错误。首先
new\Zend\File\Transfer\Transfer()不是适配器,而是传输适配器管理器

你不应该用这个来命名你的变量。让我们纠正并解释一下

    //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());
由于这个主题的文档并不完整,所以您应该深入研究代码,看看它是如何完成的。理解起来真的很快


希望这有帮助

@Dymen1您对此有什么解决方案吗?您何时收到此错误消息?创建适配器或上载文件时?上载文件时会生成此错误,不上载file@Dymen1您对此有什么解决方案吗?何时收到此错误消息?创建适配器或上载文件时?上载文件时,会生成此错误,并且不会将文件调用上载到成员函数addValidator()的空值@这取决于您的zf2版本。您可以保留脚本,只需更改“$adapter=new\Zend\File\Transfer\Transfer();”到
$adapter=new\Zend\File\Transfer()在null上调用成员函数addValidator()@这取决于您的zf2版本。您可以保留脚本,只需更改“$adapter=new\Zend\File\Transfer\Transfer();”到
$adapter=new\Zend\File\Transfer()