2013-12-13 3 views
0

У меня есть «addForm» и «editForm». После того, как я добавлю файл документа в addForm, он будет сохранен в моем db. Если я хочу отредактировать эту форму, я должен снова загрузить этот документ. Старый документ будет удален. Я хотел бы сделать функцию, чтобы проверить, загружен ли документ или нет, поэтому мне не нужно загружать его каждый раз, когда я хочу редактировать элемент. Я просто не знаю, с чего начать. Немного поможет будет здорово.Zend1 form upload document file

мой добавить/editform:

$pdf = new Zend_Form_Element_File('document'); 
    $pdf->setLabel('Nieuwe PDF') 
      ->addValidator('extension', true, array('docx', 
           'docx','pdf','txt')) 
      ->addValidator('Count', false, 1) 
      ->addValidator('Size', false, 10240000) 
      ->setDestination(PUBLIC_PATH . '/../data/invoicespdf/') 
      ->setRequired(false); 

ответ

0

Попробуйте использовать это в контроллере ... изменить его в соответствии с вашими потребностями:

if ($request->isPost()) { 
       if ($form->isValid($request->getPost())) { 
        if ('administrator' == $user->role) { 
         $oldFileName = $form->getElement('oldfilename')->getValue(); //the hidden field 
         $data = $form->getValues(); 
         $model->populate($data); 
        if (file_exists('uploads/cv/' . $oldFileName)) { 
          $form->getElement('cv')->setIgnore(true); //this is my Form File Element - the file exists, I don't need to store the filename 
         } else { // if you want you can unlink $oldFileName 
          $upload = new Zend_File_Transfer_Adapter_Http(); 
          $info = $upload->getFileInfo('cv'); 
          $upload->setDestination("uploads/cv/"); 
          if (file_exists('uploads/cv/' . $info['cv']['name'])) { 
           $newFileName = time() . rand(0, 100000) . "-" . $info['cv']['name']; // I need to avoid overwriting file 
          } else { 
           $newFileName = $info['cv']['name']; 
           $upload->addFilter('Rename', $newFileName); 
          } 
          try { 
           $upload->receive(); 
          } catch (Zend_File_Transfer_Exception $e) { 
           $e->getMessage(); 
          } 
         } 
         $model->save(); 
         return $this->_helper->redirector('list'); 
        } else { 
         //some error message 
         $this->_helper->redirector('list'); 
        } 
       } else { //form not valid 
        $this->view->form = $form; 
       } 
      } else { 
       $model->find($id); 
       $data = array(); 
       $data = $model->toArray(); 
       $data['oldfilename'] = $model->get_cv(); //the filename stored in db 
       $form->getElement('cv')->setRequired(false); 
       $form->populate($data); 
       $this->view->form = $form; 
      }