Drupal 7,自定义表单中文件字段的default_value

时间:2013-10-28 10:00:37

标签: drupal-7 drupal-fapi

我创建了一个公式,用户可以使用文件字段上传图像。在另一个公式中,用户可以更改先前上传的图像。

到目前为止,我能够让用户上传新图片或让字段为空,并保留现有图片。我的问题是,如何以一种很好的方式向用户显示他之前使用该字段上传的文件?设置#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?

提前谢谢

1 个答案:

答案 0 :(得分: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://'
);