2011-06-13 2 views
0

Для создания бизнеса я загружаю 5 изображений вместе с CSV-файлом. Я использовал следующие валидаторы zendПропуск Проверка для одного файла в Zend_File_Transfer

$upload = new Zend_File_Transfer(); 
     $upload->addValidator('Count', false, array('min' =>1, 'max' => 6)) 
       ->addValidator('Size', false, array('max' => '1Mb')) 
       ->addValidator('ImageSize', false, array('minwidth' => 50, 
                 'maxwidth' => 1000, 
                 'minheight' => 50, 
                 'maxheight' => 1000)); 

Когда я загружаю CSV, я получаю сообщение об ошибке, когда ImageSize не обнаружен. Есть ли способ, которым я могу пропустить ImageSize validator для CSV-файла?

ответ

0

И я понял, как это сделать!

$upload = new Zend_File_Transfer(); 
    $files = $upload->getFileInfo(); 
    foreach ($files as $fields => $contents) 
    { 
     if ($fields!= 'filename6') -- Skipping the validation for csv file 
     { 
      $upload->addValidator('Count', false, array('min' =>1, 'max' => 6),$fields) 
        ->addValidator('Size', false, array('max' => '1Mb'),$fields) 
        ->addValidator('ImageSize', false, array('minwidth' => 50, 
                  'maxwidth' => 1000, 
                  'minheight' => 50, 
                  'maxheight' => 1000),$fields); 
     } 
     elseif ($fields == 'filename6') -- To validate only csv file 
     { 
      $upload->addValidator('Extension', false, 'csv', $fields) 
        ->addValidator('Size', false, array('max' => '1Mb'),$fields); 
     } 
    }   
+1

Продолжайте и отмечайте это как ответ, если вы удовлетворены, это может помочь другому в будущем. – roufamatic

1

здесь пример, проверить первое изображение для 435px высоты по ширине 175px, и все остальные изображения для 200px высоты по ширине 200px.

$targetPath = $this->registry->DOC_ROOT.'/public/uploads/images/campersite_user_photo/'; 

      if(!is_dir($targetPath)) 
      { 
       mkdir($targetPath,'0777'); 
      } 

      $adapter->setDestination($targetPath); 

      $first = true; 
      $filecheck = ''; 

      if(isset($asAdminVal['admin_role_id']) && ($asAdminVal['admin_role_id'] == '1' || $asAdminVal['admin_role_id'] == '2')) 
      { 
       $photoCount = Model_TblCampersiteUserPhotos::getCamperPhotoCount($this->view->snCampId); 

       if($photoCount == 0) 
       { 
        $j = 1; 

        foreach ($adapter->getFileInfo() as $fields => $info) 
        { 
         if($info['name'] != '' && $first == true) 
         { 
          $filecheck = $fields; 
         } 

         if($filecheck != '' && $first == true) 
         { 
          $form->photo_path->addValidator('ImageSize', false,array('minwidth' => 435,'minheight' => 175,'messages' => array('fileImageSizeWidthTooSmall' => $this->translate->_('msg_camper_banner_image_file_too_width_height_less'),'fileImageSizeHeightTooSmall' => $this->translate->_('msg_camper_banner_image_file_too_width_height_less'))),$fields); 
          $first = false; 
         } 
         else 
         { 
          $form->photo_path->addValidator('ImageSize', false,array('minwidth' => 200,'minheight' => 200,'messages' => array('fileImageSizeWidthTooSmall' => $this->translate->_('msg_file_too_small'),'fileImageSizeHeightTooSmall' => $this->translate->_('msg_file_too_small'))),$fields); 
         } 
         $fileInfo[$j] = $info; 
         $j++; 
        } 
       } 
       else 
       { 
        $j = 1; 
        foreach ($adapter->getFileInfo() as $fields => $info) 
        { 
         $form->photo_path->addValidator('ImageSize', false,array('minwidth' => 200,'minheight' => 200,'messages' => array('fileImageSizeWidthTooSmall' => $this->translate->_('msg_file_too_small'),'fileImageSizeHeightTooSmall' => $this->translate->_('msg_file_too_small'))),$fields); 
         $fileInfo[$j] = $info; 
         $j++; 
        } 
       } 
      } 
      else 
      { 
       $j = 1; 
       foreach ($adapter->getFileInfo() as $fields => $info) 
       { 
        $form->photo_path->addValidator('ImageSize', false,array('minwidth' => 200,'minheight' => 200,'messages' => array('fileImageSizeWidthTooSmall' => $this->translate->_('msg_file_too_small'),'fileImageSizeHeightTooSmall' => $this->translate->_('msg_file_too_small'))),$fields); 
        $fileInfo[$j] = $info; 
        $j++;     
       } 
      } 

Для проверки формы введите код ниже.

if($form->isValid($formData)) 
{ 

} 
Смежные вопросы