Всем привет!
Подключил модуль 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:{}'.
Вопрос: как мне проверить, выбран ли какой-нибудь файл для закачки?
Спасибо.
Комментарии
возможно ответ уже не нужен, но для будущих поколений:
можно проверить длину массива получаемого из
<?php$form_values['submitted_tree']['fileforupload']?>
если его длина 0 то логично, что данных нет..
следует вот из этого 'a:0:{}' то есть массив длины 0.
У меня теперь на код <?php drupal_set_message($form_values['submitted_tree']['fileforupload']);?>
Как мне получить имя файла, который загружает пользователь через webform?
выдает просто 96
Версия 6х-3.9
Обычно быстро отвечают
Вот решение:
<?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-формы.
Удачи!