2016-06-30 70 views
0

我是zend的新手,我試圖上傳CSV文件並獲取其內容。 我的窗體類是如何在Zend1中獲取上傳的文件信息

<?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

你不需要創建另一個表單($ formData),你已經有了$ form。

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); 
} 
相關問題