0

这是我上传照片的表格

$form['Background_image'] = array(
'#type' => 'managed_file',
'#title' => t('Choose a background image'),
 '#description' => t('Click "Browse..." to select an image to upload.'),
'#required' => TRUE,
'#upload_validators' => array('file_validate_extensions' => array('jpeg jpg png gif')),
'#upload_location' => 'public://backgroundimage/',
'#default_value' => $this->options['Background_image'],

);

我尝试了这个函数来获取当前上传的图像并返回它的路径,但仍然无法正常工作:缺少什么:

 function image_path()
   {
    $f = file_load($this->options['Background_image']);
     //this too is not working: 
     //$f = file_load($form_state['values']['Background_image']);
      $url_image = file_create_url($f->uri);
      print_r($url_image);
      return ($url_image);
    }
4

1 回答 1

0

假设您的值$this->options['Background_image']是文件 ID(又名 fid),那么我在第二组代码中看到的唯一问题是您的print_r语句。file_create_url返回一个字符串,而不是对象或数组,因此您只需打印输出。

所以替换:

print_r($url_image);

和:

print $url_image;

它会将图像的完整 url(包括 http)输出到浏览器。print_r或者,如果您要返回用于另一个函数的值,则只需删除该语句。

于 2014-01-22T19:51:17.690 回答