diff --git a/includes/form.inc b/includes/form.inc index 3047930072296ffb9c79795a349940de19c38a09..e1826226228ef437d599c60adf4ad2e78644ef7a 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -851,7 +851,7 @@ function form_error(&$element, $message = '') { * $_POST data. */ function form_builder($form_id, $form, &$form_state) { - static $complete_form, $cache, $enctype; + static $complete_form, $cache, $file; // Initialize as unprocessed. $form['#processed'] = FALSE; @@ -864,7 +864,6 @@ function form_builder($form_id, $form, &$form_state) { if (isset($form['#type']) && $form['#type'] == 'form') { $cache = NULL; - $enctype = NULL; $complete_form = $form; if (!empty($form['#programmed'])) { $form_state['submitted'] = TRUE; @@ -938,12 +937,6 @@ function form_builder($form_id, $form, &$form_state) { unset($form_state['buttons']); } - // If an element requires to set the forms content type enctype attribute, we - // need to store this info in a static $enctype flag to update the parent - // form element. E.g. For files, non-ASCII data, and binary data. - if (isset($form['#enctype'])) { - $enctype = $form['#enctype']; - } // If some callback set #cache, we need to flip a static flag so later it // can be found. if (!empty($form['#cache'])) { @@ -955,15 +948,14 @@ function form_builder($form_id, $form, &$form_state) { $file = TRUE; } if (isset($form['#type']) && $form['#type'] == 'form') { - // Set the form encoding if required. - if (isset($enctype)) { - $form['#attributes']['enctype'] = $enctype; - } - // We are on the top form, we can copy back #cache if it's set. if (isset($cache)) { $form['#cache'] = TRUE; } + // If there is a file element, we set the form encoding. + if (isset($file)) { + $form['#attributes']['enctype'] = 'multipart/form-data'; + } } return $form; } diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index febfcde06c943498ec2f074a2a57d5f1222dede7..970c0488a96f04eec05731d98954fac102b5f420 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -517,6 +517,7 @@ function system_theme_settings(&$form_state, $key = '') { } } } + $form['#attributes'] = array('enctype' => 'multipart/form-data'); $form = system_settings_form($form); // We don't want to call system_settings_form_submit(), so change #submit. diff --git a/modules/system/system.module b/modules/system/system.module index e2e243cff0e341b63bd465642cfd45046d94b3c2..151c26979ec8bf8468b386c0e8f893d73a78e7d8 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -341,7 +341,6 @@ function system_elements() { $type['file'] = array( '#input' => TRUE, '#size' => 60, - '#enctype' => 'multipart/form-data', ); diff --git a/modules/upload/upload.module b/modules/upload/upload.module index 8dd3cb6d5a7f983da51dc8af96264a009a0e3ea5..8f223ad1a3ca93fbb0121583042ddc95bea060b6 100644 --- a/modules/upload/upload.module +++ b/modules/upload/upload.module @@ -258,6 +258,7 @@ function upload_form_alter(&$form, $form_state, $form_id) { } else { $form['attachments']['wrapper'] += _upload_form($node); + $form['#attributes']['enctype'] = 'multipart/form-data'; } } $form['#submit'][] = 'upload_node_form_submit'; diff --git a/modules/user/user.pages.inc b/modules/user/user.pages.inc index 9d01f3c5acd390d0ffb42e62eb827fe6c56ccae2..ada98b6fbc58e40660d71e1891a04bb39f1e1055 100644 --- a/modules/user/user.pages.inc +++ b/modules/user/user.pages.inc @@ -246,6 +246,7 @@ function user_profile_form($form_state, $account, $category = 'account') { '#submit' => array('user_edit_delete_submit'), ); } + $form['#attributes']['enctype'] = 'multipart/form-data'; return $form; }