managed_file 양식 필드에 허용되는 확장자를 어떻게 설정합니까?


27

운이 없다면 Drupal 문서 나 개발자 예제에서 이것을 찾으십시오. Drupal 7 사용자 정의 모듈에서 zip 파일 만 허용하도록 managed_file 양식 필드를 설정해야합니다.

답변:


40
$form['picture']['file'] = array(
  '#type' => 'managed_file',
  '#title' => t('picture'),
  '#description' => t('Allowed extensions: gif png jpg jpeg'),
  '#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
  '#upload_location' => variable_get('picture_upload_location'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    // Pass the maximum file size in bytes
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

1
file_validate_size를 시도했지만 작동하지 않습니다.
ARUN

그것은 나를 위해 작동하지 않습니다.
Mr_DeLeTeD

$ foo에서 왔나요?
khaled_webdev

파일을 수동으로 저장하면 유효성 검사가 자동으로 수행되지 않는 것 같습니다. 나는 이렇게해야했다 :$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

이것은 Drupal 8에서도 작동합니다.
sanzante

1

Drupal 6 또는 Drupal 7을 사용하고 있는지 확실하지 않지만 Drupal 6에서는 다음을 선택합니다.

  • 관리 > 콘텐츠 > 콘텐츠 유형 > [내 콘텐츠 유형]> 필드 관리 > [파일 필드 편집]에서 "허용 된 업로드 파일 확장자" 의 필드 설정을 찾으십시오.

  • 해당 입력란에 zip을 입력하십시오.

Drupal 7은 아마도 비슷할 것입니다. 관리 > 구조 아래 에서 컨텐츠 유형을 찾으십시오 .


Drupal 7은 누락되어 죄송합니다. 사용자 정의 모듈에서 managed_field 양식 항목을 사용하고 있으므로 관리자는 도움이되지 않습니다. 프로그래밍 솔루션이 필요합니다.
개렛

4
#upload_validators를 사용할 수 있다고 생각합니다 : $ form [ 'file'] [ '# upload_validators'] [ 'file_validate_extensions'] [0] = 'png jpg gif pdf';
DARK

DARK가 이겼습니다. 원래 양식 항목 배열에 오타가 있음을 깨닫기 위해 해당 줄에 붙여 넣었습니다. 기본적으로 이것은 철자 오류로 인해 얻지 못한 양식 API의 잘 문서화 된 기능입니다. 미안 해요
개렛

참고 : Drupal 6에는 managed_file 양식 필드가 없으며 파일 만 있습니다. 출처 : Drupal 6 Form API 참조
Bart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.