创建了一个表单并添加了一个字段以将图像上传到服务器上的文件夹,我已经通过打印值检查了该值。并且不会将数据保存到DB:
我的控制器:
public function vouchersAction()
{
$vouchers = new VouchersForm();
$vouchers->get('submit')->setValue('Vouchers');
$request = $this->getRequest();
if ($request->isPost()) {
//echo '<pre>'; print_r($request);
//exit();
$vouchers = new Vouchers();
$vouchers = new ZendFileTransferAdapterHttp();
$vouchers->setDestination('C:xampphtdocsreisesparerpublicimagescoupons');
$vouchers->setInputFilter($vouchers->getInputFilter());
$vouchers->setData($request->getPost());
if ($vouchers->receive()) {
echo "The file has been uploaded!";
}
if ($vouchers->isValid()) {
$vouchers->exchangeArray($vouchers->getData());
$this->getVouchersTable()->saveVouchers($vouchers);
return $this->redirect()->toRoute('vouchers');
}
}
return array('vouchers' => $vouchers);
}
错误:
Fatal error: Call to undefined method ZendFileTransferAdapterHttp::setInputFilter()
您的动作现在没有任何意义。
1.您启动VouchersForm()
班级为$vouchers
2.如果要求是POST
,则您要做:
$vouchers = new Vouchers();
$vouchers = new ZendFileTransferAdapterHttp();
您从Point #1
(VouchersForm
(覆盖类,带有新类Vouchers
。您什么都不做,然后使用ZendFileTransferAdapterHttp()
覆盖Vouchers
类,然后尝试调用VouchersForm
类(#1
(的方法:
$vouchers->setInputFilter($vouchers->getInputFilter());
$vouchers->setData($request->getPost());
在ZendFileTransferAdapterHttp()
类中不存在。
您应该在第一个if
块(if ($request->isPost())
(内重命名变量$vouchers
使用" addValidator
"方法而不是$vouchers->setInputFilter($vouchers->getInputFilter());
ex:
$vouchers->addValidator('MimeType', false, 'image/png');