2013-10-28 6 views
0

사용자가 파일 필드를 사용하여 이미지를 업로드 할 수있는 형식을 만들었습니다. 다른 형식으로 사용자는 이전에 업로드 한 이미지를 변경할 수 있습니다.Drupal 7, 사용자 정의 양식의 파일 필드에 대한 default_value

지금까지 사용자가 새 사진을 업로드하거나 해당 필드를 비워두고 기존 이미지를 유지할 수있었습니다. 내 질문은 이전에 필드로 업로드 한 파일을 사용자에게 좋은 방법으로 표시하려면 어떻게해야합니까? #default_value (아래 @code)를 설정해도 아무런 효과가 없습니다.

//$smallimage = fid of image 
$form['smallimage'] = array(
    '#type' => 'file', 
    '#title' => t('Image'), 
    '#default_value' => $smallimage, 
    '#description' => t('Upload a file, allowed extensions: jpg, jpeg, png, gif'), 
); 

편집 : 관리되는 파일로 다시 바뀝니다. 내 파일/이미지를 바인딩 할 형식이 없으므로 첫 번째 노드와 첫 번째 사용자를 바인딩합니다. 깨끗한 솔루션은 아니지만 작동합니다.

managed_file (으)로 전환하지 않고 해결책/해결 방법이 있습니까? 당신이 경우에 재산 #default_value을 사용하려는 경우

은 당신이 사용할 수있는, '#default_value'는 "파일"형식의 유효한 속성이 아닙니다입니다 사전

드루팔 FAPI에

답변

2

에 감사

'#type'   => 'managed_file' 

코드는 다음과 같아야합니다.

$form['file'] = array( 
    '#title'  => t('Upload image'), 
    '#type'   => 'managed_file', 
    '#description' => t('Images must be one of jpg, bmp, gif or png formats.'), 
    '#default_value' => $fid, //here you need to provide the file id (get it from database or $file_obj->fid). 
    '#upload_location' => 'public://' 
);