2013-10-28 85 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的解決方案/解決方法?

預先感謝您

回答

2

在Drupal的FAPI,「#default_value」不是類型「文件」有效的屬性,如果你想使用在這種情況下屬性#default_value可以使用

'#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://' 
); 
相關問題