2013-03-24 8 views
0

Zend 양식에서 업로드 한 파일 이름 길이에 대한 유효성 검사기를 추가하려고합니다. 이 유효성 검사기를 양식의 양식이나 업로드를 처리하는 Zend_File_Transfer_Adapter_Http에 추가해야하는지 여부를 알지 못합니다. 그러나, 지금은 두 번째 것을 시도하고 있습니다 - 아래 코드를보십시오. 업로드 할 파일 이름의 길이가 40자를 초과하면 컨트롤러가 오류 플래그를 사용하여 리디렉션하도록합니다.

$upload 길이가 41자인 파일 이름에서도 유효합니다. 이유가 무엇입니까?
Zend 컨트롤러 또는 양식의 파일 업로드시 파일 이름 길이를 확인하는 방법

$upload = new Zend_File_Transfer_Adapter_Http(); 

$upload->addValidators(
     array(
      array('validator' => 'StringLength', 'options' => array(
       'min' => 0, 
       'max' => 40)) 
     ) 
); 

if (!$upload->isValid()) { 
    $this->_redirect('/customer/uploadfile/groupid/'.$groupId.'/flag/XXX-TODO-Failure'); 
} 

답변

1

표시 한 코드로 아무 것도 확인하지 않은 것처럼 보입니다.

변화와 같은 파일 이름을 참조하도록 다음과 같이 선 ...

if(!$upload->isValid($filenameToValidate) { 

...}

은 또한 파일 이름을 기억은 게시하지하지만 $ _FILES 자동 전역에서 찾을 수 .

+0

그건 속임수 였어! 아마 나는 너무 피곤했습니다. 그냥 두 가지 추가 : 1) 내 코드 예제에서 StringLength 유효성 검사기 특성을 '0'과 '40'으로 설정하도록 지정하지 않았으므로 최대 문자열 길이가 올바르게 설정되지 않았습니다. 내 예제를 편집하여 '최소'및 '최대'를 명시 적으로 설정했습니다. 2) $ _FILES에 액세스하는 대신 ZF 함수 $ upload-> getfilename ('doc_path', false)을 사용하여 업로드 파일 이름을 가져올 수 있다는 것을 알았습니다. 나는 어떤 방법이 추천 될지는 모르겠다. – Daniel