アップロードフォームの例を含む複数のdrupalページとstackoverflowページを見つけましたが、1つを機能させることができませんでした。ここに、私が使用したすべてのコードを含め、他の人が行ったことをまとめて解析しました。メニュー、フォーム、送信、検証機能が含まれています。アップロードファイルはサイト->デフォルト->ファイルフォルダに保存されず、送信時に送信set_messageは表示されません。なぜこれが機能しないのですか?
<?php
function upload_example_menu() {
//$items = array();
$items['upload_example'] = array(
'title' => t('Upload'),
'page callback' => 'drupal_get_form',
'page arguments' => array('upload_example_form'),
'description' => t('uploading'),
"access callback" => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function upload_example_form() {
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['upload'] = array('#type' => 'file');
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
function upload_example_form_validate($form, &$form_state) {
if(!file_check_upload('upload')) {
form_set_error('upload', 'File missing for upload.');
}
}
function upload_example_form_submit($form, &$form_state) {
$validators = array();
$file = file_save_upload('upload', $validators, file_directory_path());
file_set_status($file, FILE_STATUS_PERMANENT);
drupal_set_message(t('The form has been submitted.'));
}
?>