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()代码>