it-swarm-ko.tech

CCK 필드 설정의 파일 업로드 필드

CCK에 대한 작은 설정 영역과 반대로 "일반"양식 (즉, 모듈 구성을위한 별도의 페이지)에 파일 업로드 필드를 추가하려면 Drupal 7에 차이가 있습니까? 필드 ( "디스플레이 관리"탭에서 수정하려는 필드의 톱니 바퀴를 클릭 한 후 나타나는 필드)?

hook_field_formatter_settings_form 을 사용하여 사용자 정의 필드에 대한 구성 옵션이 많이 있지만 파일 업로드 필드를 만드는 방법을 알아 내려고 노력하고 있습니다. 이상적으로는 사용자가 페이지를 다시로드하지 않고도 이미지를 찾아보고 업로드 할 수 있도록하고 싶습니다. 이것이 내가 현재 가지고있는 전부입니다.

$element['custom_field_name']['image'] = array(
    '#type' => 'file',
    '#size' => 48,
    '#title' => t('Image upload'),
    '#description' => t("Upload an image."),
);

이 영역에 파일 업로드 필드 (ajax를 사용)가있을 수 있다면 어떻게해야합니까?

편집 :

내 파일 필드는 이제 다음과 같습니다.

$element['custom_field_name']['image'] = array(
    '#type' => 'managed_file',
    '#title' => t('Image upload'),
    '#upload_validators' => array(
      'file_validate_extensions' => array(0 => 'png jpg jpeg gif'),
      'file_validate_image_resolution' => array('64x64', '10x10')
    ),
    '#upload_location' => 'public://default_images/',
    '#description' => t("Upload an image."),
);

이것은 일종의 작동입니다. 파일을 업로드 할 수 있고 sites/default/files/default_images로 이동하지만 유일한 일시적입니다. 나는 양식 api 참조 을 겪었고 영구적으로 저장해야한다고 말합니다. 이 논리를 어디에 두어야할지 잘 모르겠습니다. 파일 필드에 #process 키를 추가하고 일부 개인 함수를 호출합니까? 아니면 제출 핸들러를 생성합니까? API 참조는 내가 원하는만큼 자세히 설명하지 않습니다.

4
Joe

양식 제출시 파일의 상태에 FILE_STATUS_PERMANENT를 추가 한 다음 파일을 저장해야합니다.

$file->status = FILE_STATUS_PERMANENT;
file_save($file);
1
LSU_JBob