유효성 검사를 통해 파일 업로드를 선택 사항으로 만드는 방법은 무엇입니까? 아래 코드는 내가 파일을 선택하지 않았더라도 유효성을 검사합니다. 파일을 선택한 경우에만 확장자를 확인하고 싶습니다. 파일을 선택하지 않으면 유효성 검사 오류가 반환되지 않습니다. 미리cakePHP 파일 업로드에 대한 선택적인 유효성 확인
3
A
답변
2
에
class Catalog extends AppModel{ var $name = 'Catalog'; var $validate = array( 'name' => array( 'rule' => '/^[a-z0-9 ]{0,}$/i', 'allowEmpty' => false, 'message' => 'Invalid Catalog name' ), 'imageupload' => array( 'rule' => array('extension',array('jpeg','jpg','png','gif')), 'required' => false, 'allowEmpty' => true, 'message' => 'Invalid file' ), ); }
감사 "I는 $ this- 할당> 데이터 [ '카탈로그'] [ '상'] = $ this-> 데이터 [ '카탈로그'] [ 'imageupload'] ['이름'];"
그래서 당신은 당신의 데이터 배열을 저장 시간, 그것은 다음과 같은 형태 나는 가정
array(
'name' => 'foobar',
'size' => 1234567,
'error' => 0,
...
)
:
의미
array(
'image' => 'foobar',
'imageupload' => array(
'name' => 'foobar',
'size' => 1234567,
'error' => 0,
...
)
)
에서, imageupload
유효성 검사 규칙이 데이터에서 작동하도록 노력하고있다
e 유효성 검사를 시도하는 값은 단지 문자열이 아니라 물건 배열입니다. 그리고 그것은 지정된 유효성 검사 규칙을 통과하지 않습니다. 그것은 또한 결코 "비어 있지"않습니다.
이 배열을 처리 할 수있는 사용자 지정 유효성 검사 규칙을 만들거나 유효성 검사를 시도하기 전에 컨트롤러에서 추가 처리를 수행해야합니다.
1
개념 : 컨트롤러에서
, 검증, 또는 파일이 업로드되어 있는지 확인 (기본적으로 자동으로 유효성 검사를 수행하는) 저장하기 전에. 업로드되지 않은 경우 파일 필드에 대한 유효성 검사기를 설정 해제합니다.
샘플 코드 :
컨트롤러
// is any image uploaded?
$isNoFileUploaded = ($this->request->data['Model']['field_name']['error'] == UPLOAD_ERR_NO_FILE) ? true : false ;
if ($isNoFileUploaded) {
$this->Model->validator()->remove('field_name');
}
주 :
이 솔루션은 두 가지 다른 방법 중 하나 (컨트롤러의 전처리, 모델 지정 유효성 검사로 사전에 해당되는) @deceze's answer
관련 문제
- 1. 선택적인 JQuery 유효성 확인
- 2. 날짜에 대한 CakePHP 유효성 확인
- 3. cakePHP 유효성 확인
- 4. cakephp 폼 유효성 확인
- 5. Join 컬럼에 대한 CakePHP 유효성 확인
- 6. CakePHP 유효성 확인 - isUnique 또는 inList
- 7. xml 파일 유효성 확인
- 8. SQLite 파일 유효성 확인
- 9. 유효성 검사 파일 업로드 CakePHP
- 10. ctp 페이지의 Cakephp 입력 상자 유효성 확인
- 11. Java/J2EE에서 파일 업로드에 대한 도움말
- 12. 파일 업로드에 대한 설명 할 수없는 문제
- 13. Drupal 파일 업로드에 대한 사용자 별 권한
- 14. AppleScript cURL 파일 업로드에 대한 도움말
- 15. FTP 파일 서버 업로드에 대한 경고
- 16. CakePHP 1.3으로 암호 확인
- 17. CakePHP 인증 및 확인
- 18. 파일 업로드에 문제가 발생했습니다.
- 19. 스프링 구성 파일 유효성 확인
- 20. django의 동영상 파일 유효성 확인
- 21. 입력 [유형 = 파일] 유효성 확인
- 22. cakePHP "필수"확인
- 23. 영문자에 대한 Jquery 유효성 확인
- 24. 많은 작업에 대한 CakePHP 유효성 검사 규칙
- 25. CakePhp : 여러 필드에 대한 폼 유효성 검사?
- 26. 이 파일 업로드에 문제가 있습니까?
- 27. 봄 MVC - 선택적인 포맷팅
- 28. CakePHP 사용자 역할 확인
- 29. 모델과 컨트롤러 모두에서 cakephp 확인
- 30. 클립, 여러 첨부 파일 및 유효성 확인
당신은 어떤 방식 으로든 컨트롤러의'imageupload' 필드를 사전 처리하고 있습니까? – deceze
@deceze : 미안 전처리로 무슨 뜻입니까? ??? iagename 만 저장해야 $ this-> data [ 'Catalog'] [ 'image'] = $ this-> data [ 'Catalog'] [ 'imageupload'] [ 'name']; 그 다음에 나는 단지 – RSK
이라는 저장 부를 부를 것이다. 그것은 내가 전처리하는 것을 의미한다. – deceze