diff --git a/modules/upload/upload.module b/modules/upload/upload.module
index a45a0fcf3a81..3bf59f139a63 100644
--- a/modules/upload/upload.module
+++ b/modules/upload/upload.module
@@ -377,8 +377,22 @@ function upload_form_alter($form_id, &$form) {
'#prefix' => '
',
'#suffix' => '
',
);
- $form['attachments']['wrapper'] += _upload_form($node);
- $form['#attributes']['enctype'] = 'multipart/form-data';
+
+ // Make sure necessary directories for upload.module exist and are
+ // writable before displaying the attachment form.
+ if (!file_check_directory(file_directory_path(), FILE_CREATE_DIRECTORY) || !file_check_directory(file_directory_temp(), FILE_CREATE_DIRECTORY)) {
+ $form['attachments']['#description'] = t('File attachments are disabled. The file directories have not been properly configured.');
+ if (user_access('administer site configuration')) {
+ $form['attachments']['#description'] .= ' '. t('Please visit the file system configuration page.', array('@admin-file-system' => url('admin/settings/file-system')));
+ }
+ else {
+ $form['attachments']['#description'] .= ' '. t('Please contact the site administrator.');
+ }
+ }
+ else {
+ $form['attachments']['wrapper'] += _upload_form($node);
+ $form['#attributes']['enctype'] = 'multipart/form-data';
+ }
}
}
}