Модуль WebForm. Как обратиться к полю типа file?

Главные вкладки

Аватар пользователя DjAndrey DjAndrey 6 мая 2009 в 19:34

Всем привет!
Подключил модуль WebForm, добавил поле типа file и типа textarea. Нужно поставить проверку в области Additional Validation, заполнено ли хоть одно из этих двух полей. Поле типа textarea я обозвал additionalinfo, а поле типа file - fileforupload.

Так вот, если с проверкой заполнено ли поле additionalinfo проблем нет
<?php if (empty($form_values['submitted_tree']['additionalinfo'])) {...?>,
то с файлом такое не прокатывает.
Если выбираю файл, то <?php drupal_set_message($form_values['submitted_tree']['fileforupload']);?> выдает что-то вроде
'a:10:{s:8:"filename";s:8:"logo.gif";s:8:"filepath";s:36:"sites/default/files/webform/logo.gif";...'
А если не выбираю, то 'a:0:{}'.

Вопрос: как мне проверить, выбран ли какой-нибудь файл для закачки?

Спасибо.

Комментарии

Аватар пользователя naugrim naugrim 4 октября 2009 в 17:18

возможно ответ уже не нужен, но для будущих поколений:
можно проверить длину массива получаемого из <?php$form_values['submitted_tree']['fileforupload']?>
если его длина 0 то логично, что данных нет..
следует вот из этого 'a:0:{}' то есть массив длины 0.

Аватар пользователя Worth Worth 31 марта 2011 в 11:12

У меня теперь на код <?php drupal_set_message($form_values['submitted_tree']['fileforupload']);?>
выдает просто 96 Sad Как мне получить имя файла, который загружает пользователь через webform?
Версия 6х-3.9

Аватар пользователя Worth Worth 31 марта 2011 в 11:42

Обычно быстро отвечают Smile
Вот решение:
<?php
$file = webform_get_file($form_values['submitted_tree']['fileforupload']);
drupal_set_message($file->filepath);
?>

можете посмотреть sites\all\modules\webform\components\file.inc со строчка 345 function theme_webform_render_file, по ней понятно какими функциями пользоваться при работе с файлами web-формы.

Удачи! Smile