Posted by redfish on October 6, 2006 at 9:35pm
I am having a bit of a problem uploading files using drupals 4.7 form API. My objective is up put the file uploaded in the 'media' field in a directory, and store a link in a database. This works fine using the drupal upload Api, unless I am using the form API.
A sample of my code is below.
##################
<?php
// Form declaration:
$form['save_promo'] = array(
'#type' => 'fieldset',
'#title' => t('Edit or Create a Promotion.'),
'#tree' => TRUE,
);
// Field Declaration:
$form['save_promo']['media_inline']['media_label'] = array(
'#value' => "Media Attachment: ",
);
$form['save_promo']['media_inline']['media'] = array(
'#type' => 'file',
'#size' => 20,
'#attributes' => array('style' => 'width:auto'),
);
// Submit:
$form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
$output = drupal_get_form('save_promo', $form);
return $output;
// Uploading should look something like:
$file = file_check_upload('media');
file_save_upload('media', variable_get('file_directory_path', NULL));
?>Note:
The last section is just a sample, I have tried passing everything I could imagine, and have successfully been able to retreive the
filename itself with this:
$mediaAttachment = $form_values['save_promo']['media_inline']['media'];
echo $mediaAttachment returns the filename (not the tmp_name).
Comments
Hmmm.
See Heine's example at http://drupal.pastebin.us/6084
The lack of...
$form['#attributes']['enctype'] = 'multipart/form-data';
Is prolly a part of the problem.
---
Santa Cruz Tech | "... Just Below My Skin, I'm Screamin'..."
#83698: $source parameter in
#83698: $source parameter in file_save_upload() not work as expected when field is in a fieldset with #tree set to TRUE