Drupal 7,使用managed_file永久上传和保存图像

时间:2013-02-20 11:00:17

标签: drupal-7

我似乎无法保存使用FAPI上传的图像文件。

图像作为托管文件上传,我需要永久保存它们,但它们始终保存在状态为1的数据库中。

知道我做错了什么吗?谢谢,

// FAPI

 $form['fieldset_3']['pic_3'] = array(
 '#type' => 'managed_file',
 '#title' => t('Image'),
 '#required' => TRUE,
 '#default_value' => variable_get('pic_3'),    
 '#description' => t('Allowed extensions: gif png jpg jpeg.'),
 '#upload_validators' => array(
 'file_validate_extensions' => array('gif png jpg jpeg'),
 'file_validate_size' => array('MAX_FILE_SIZE' * 1200 * 300),
 ),  
 '#theme' => 'image_multifield_multitype',
 '#upload_location' => 'public://carousel',
 );

//在提交功能

$file = file_load($form_state['fieldset_1']['pic_1']);
$file = file_save_upload($file->uri,$validators, 'public://carousel/' .  $file->filename, FILE_EXISTS_REPLACE);
$file->status = FILE_STATUS_PERMANENT;
file_save($file);  

2 个答案:

答案 0 :(得分:1)

我的不好,问题是提交处理程序没有被调用...

答案 1 :(得分:0)

通过fid加载图片并将状态设置为永久

$file = file_load($form_state['values']['image_fid']);
$file->status = FILE_STATUS_PERMANENT;
$file_saved =file_save($file);
variable_set('image_fid', $file_saved->fid);