如何在编辑页面中显示上传的managed_file?

时间:2013-11-06 04:00:50

标签: forms drupal drupal-7 form-api managed-file

我可以使用managed_file成功上传文件。该文件保存在正确的目录中,记录显示在file_managed表中。

$form['image'] = array(
    '#title' => t('Image'),
    '#type' => 'managed_file',
    '#default_value' => (isset($foo->image->fid) ? $foo->image->fid : ''),
    '#upload_location' => 'public://foo_images/'
);

但是当我编辑表单时,它仍会显示Upload按钮,类似于我上传文件之前的“创建”页面。如何使编辑页面看起来像我已经为该特定实体上传了文件?

1 个答案:

答案 0 :(得分:0)

检查$foo变量表明我应该只使用$foo->image代替$foo->image->fid

可能是因为我_form_submit中有以下几行:

if (isset($form_state['values']['image'])) {
    $file = file_load($form_state['values']['image']); 
    $file->status = FILE_STATUS_PERMANENT;
    file_save($file);
    file_usage_add($file, 'foo', 'foo', $foo->tkid);

    $foo->image = $file->fid;
  }

请注意$foo->image = $file->fid;

部分