Автоматическая загрузка файлов в Drupal 7. Модуль auto_upload. Загрузка файлов в drupal
Загрузка файлов в Drupal - Решено
я был возиться немного с разных решений, чего бы я видеть, как довольно распространенная проблема, но я до сих пор не в состоянии решить удовлетворительным образом.
то, Что я хочу достичь, - это какая-то функциональность, в которой пользователь может загружать новые файлы, или выберите существующий файлы, чтобы их использовать.
то, Что я использую до сих пор, является комбинацией filefield, filefield_sources, imce и ckeditor модули. Я думаю, ckeditor на самом деле не важно решение, но мне нужно, чтобы иметь возможность вставлять изображения из архива каким-то образом, и это делается с IMCE . Поскольку я не хочу, чтобы все было добраться из хранящиеся я создал подкаталог и задать полный доступ к нему в IMCE параметры, назовем его default/files/site
Это прекрасно работало, пока все filehanding было сделано через IMCE, но когда я загрузил файлы непосредственно из filefield мои файлы оказались в default/файлов root, так что я создавать папки для моих полей, например default/files/site/movies в поле, что позволило .flv формат. Это хорошо работало, пока я не пытался получить доступ к файлам через IMCE. Похоже, папки, созданные filefield недоступны из IMCE?
я тоже в положении, когда мне нужна поддержка больших загрузок (200MB ), но из моего опыта в другие проекты, позволяющие передачу файлов через FTP, как правило, палочка-выручалочка, но, насколько я понимаю IMCE не будет поддерживать файлы не загружены с помощью Drupal, в некотором роде, так как они не присутствуют в базе данных (давая сообщение: The selected file could not be used because the file does not exist in the database.)
я в курсе, что я на самом деле не очень ясный вопрос к моей проблеме, но как-то мне нужно, чтобы понять это довольно быстро. Как бы я желательно решить эту проблему? Я осознаю, что я не первый, кто эту проблему, но я до сих пор не смогли найти хорошее и стабильное решение. Что я пропустил?
v-resheno.ru
Drupal: Загрузка файлов средствами Form API
Пример загрузки картинки с помощью Form API:
Полезное дополнение к статье — Использование виджета AJAX загрузки файлов в своих формах.
Написанное актуально для Drupal 7 Похожие записиxandeadx.ru
Автоматическая загрузка файлов в Drupal 7. Модуль auto_upload
Сегодня, проверяя опросники сайта – заметил, что больше десятка пользователей задали один и тот же вопрос, а именно «Расскажите пожалуйста, как выполнить автоматическую загрузку файла, при создании материала». Именно этим я и решил заняться, ибо данной задачи, как ни странно никогда не решал. На просторах drupal.org , был найден модуль, который вроде бы как решал нашу задачу, - autoupload. Но как всегда есть одно «НО» - у меня он категорически отказался заводиться. Естественно, что после неудачи - я полез в исходники модуля, с целью разобраться с реализацией и именно этот модуль натолкнул меня на мысль, что с данной задачей можно легко справиться через jQuery, файл которого не превышает 1кб.
Собственно осталось все это дело реализовать и в конечном счете был создан модуль auto_upload. Так же решил добавить пока одну настройку – это выбор, для каких типов материалов необходимо добавлять данную опцию. Возможно, нужна реализация с ограничениями по ролям пользователей, но это по вашему желанию – если нужно будет, допишу.
Теперь к модулю. Установка такая же как и у всех, сложностей не должно возникнуть. Из зависимостей – только Jquery_update. После активации модуля в разделе «Конфигурация», у вас появится новый раздел – Settings Auto Upload Files.
В данном разделе вы можете выбрать для каких типов материалов необходимо использовать автоматическую загрузку файлов.
Так же не забываем менять версию Jquery на 1.7. После выполнения всех действий, для выбранных типов материалов будет доступна автоматическая загрузка файлов (кнопку загрузить – я естественно скрыл, ибо необходимость в ней отпадает).
Ну вот в принципе и все. Как всегда на d.org он не появится, любители drush – отпадают.
Скачать модуль auto_upload (версия 1.0.2)
- Исправлено отображение кнопки "Загрузить" для полей с типом - файл
- Исправлена работоспособность для типов материалов, в имени которых присутствует "_"
- Добавил подключение скрипта, только на страницах администрирования
Скачать модуль auto_upload (версия 1.0.3)
- Добавлена поддержка форм, создаваемые модулем webform.
drupalfly.ru
Drupal: Использование виджета AJAX загрузки файлов в своих формах
Я как-то упустил из виду, что помимо стандартного способа загрузки файлов в своих формах можно использовать AJAX виджет поля File:
Пример использования:
/** * Form builder. */ function mymodule_myform($form) { $form['file'] = array( '#type' => 'managed_file', '#title' => 'Картинка', '#description' => 'Выберите файл с расширением jpg, jpeg, png или gif', '#upload_location' => 'public://', '#upload_validators' => array( 'file_validate_is_image' => array(), 'file_validate_extensions' => array('png gif jpg jpeg'), 'file_validate_size' => array(1 * 1024 * 1024), ), '#default_value' => variable_get('mymodule_myfilefid'), ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Отправить', ); return $form; } /** * Form submit callback. */ function mymodule_myform_submit($form, &$form_state) { // Delete old file $old_file_fid = variable_get('mymodule_myfilefid'); if ($old_file_fid && $old_file_fid != $form_state['values']['file']) { $old_file = file_load($old_file_fid); file_usage_delete($old_file, 'mymodule'); file_delete($old_file); } // Save new file $file = file_load($form_state['values']['file']); $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, 'mymodule', 'mymodule', 0); variable_set('mymodule_myfilefid', $file->fid); drupal_set_message('Картинка загружена'); }Документация.Модуль для загрузки картинок и отображения их превьюшек.
Написанное актуально для Drupal 7 Похожие записиxandeadx.ru