Я мое мнение, это - пример, где выдача исключения хорошо. Ваше свойство, вероятно, не имеет никакого контекста, которым можно исправить проблему, как таковую, исключение в порядке, и код вызова должен обработать ситуацию, если это возможно.
Это не так уж сложно, вы можете увидеть некоторую информацию здесь . Пример формы с загрузкой только файла.
function myform_form($form_state) {
$form = array('#attributes' => array('enctype' => 'multipart/form-data'));
$form['file'] = array(
'#type' => 'file',
'#title' => t('Upload video'),
'#size' => 48,
'#description' => t('Pick a video file to upload.'),
);
return $form;
}
EDIT:
Теперь, чтобы сохранить файл, используйте функцию file_save_upload :
function myform_form_submit($form, $form_state) {
$validators = array();
$file = file_save_upload('file', $validators, 'path');
file_set_status($file, FILE_STATUS_PERMANENT);
}
2nd EDIT:
Там много вопросов и способы делать то, что вы описали. Я не буду вдаваться в подробности реального кода того, как обрабатывать файл csv. Я бы посоветовал вам использовать идентификатор файла для отслеживания файла. Это позволит вам создавать URL-адреса, которые используют фид и использовать их для загрузки файла, над которым вы хотите работать. Чтобы перейти от формы к следующему шагу, вы можете использовать свойство формы #redirect , чтобы пользователи переходили к следующему шагу. От этого действительно зависит, как вы что-то делаете, что вам нужно делать.