我是zend的新手,我正在尝试上传CSV文件并获取其内容。 我的表单类是
<?php
class Application_Form_Upload extends Zend_Form
{
public function init()
{
// Set the method for the display form to POST
$this->setMethod('post')->setEnctype('multipart/form-data');
// Add an email element
$this->addElement('text', 'email', array(
'label' => 'Your email address:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
'EmailAddress',
)
));
// Add the comment element
$this->addElement('file', 'csvfile', array(
'label' => 'CSV File:',
'required' => true
));
// Add the submit button
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Send Request',
));
// And finally add some CSRF protection
$this->addElement('hash', 'csrf', array(
'ignore' => true,
));
}
}
我的控制器
class IndexController extends Zend_Controller_Action {
public function indexAction() {
$this->view->headTitle('WestWing');
$request = $this->getRequest();
$form = new Application_Form_Upload();
if ($this->getRequest()->isPost()) {
if ($form->isValid($request->getPost())) {
$formData = new Application_Form_Upload($form->getValues());
echo "<pre>";
print_r($formData);
$fileName = $formData->file->tmp_name;
echo $fileName;
}
} else {
echo "anot well";
}
$this->view->form = $form;
}
}
但是当我做echo $filename
时,它什么也没有给我回报。
答案 0 :(得分:0)
您不需要创建另一个表单($ formData),您已经拥有$ form。
答案 1 :(得分:0)
你不必使用任何zend库来导入csv文件,你可以只使用本机的php函数,看看fgetcsv
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}