Модуль «Files»

Применение модуля и вопросы по использованию
Быстрый переход:
Алексей

Алексей

Administrator
#46   15 апреля 2017 18:07

@Anonymous

Мне не удалось у себя воспроизвести подобную ошибку. Но судя по всему это сообщение выдается при попытке проверить права на запись в системную временную папку (или временную папку хоста). При загрузке файла на сервер и перед его обработкой скрипт пытается положить файл в эту папку. Она как правило находится за пределами вебсервера и недоступна через браузер.

Я добавил подавление этого сообщения об ошибке. Одновите модуль и должно все заработать нормально. Но временную папку можно тоже добавить в open_basedir.

В вашей оригинальной конфигурации в значении этой директивы стоит спец. значение (точка). Оно обозначает, что рабочая директория скрипта будет использована в качестве базовой директории. Однако, это немного опасно, так как текущая директория скрипта может быть легко изменена с помощью chdir().

 

 

@Липницки Андрей

А такой вопрос - мне что бы установить в принципе файлз надо установить доп библиотеку в которой есть View. Но это не значит что я его могу напрямую использовать уже?

Вы можете использовать его в своих расширенях. В готовых придется использовать те, которые предусмотрел разработчик.

Насчет файлов в корне, нужно разбираться.

Отредактировано: Alex (15.04.2017 18:26, 2 месяца назад)

Быстрота и надежность... Ну и красота тоже, конечно

Липницки Андрей

Липницки Андрей

Member
#47   27 апреля 2017 01:57

Вот такой неприятный момент - при параллельной закачке у меня на сайт попадут снимки (в зависимости от веса они в таком порядке закачаются) 3 4 1 2 и получат в БД file_order именно такой. А если это цикл снимков с определенной логикой в порядке отображения (которая обычно отображена в номерции файлов - к примеру если бы в примере были номера 1.jpg 2.jpg и тд это все равно бы ничего не дало - все по весу отсортируется ввтоматом) то вся логика будет убита и после закачки надо открывать и пересортировывать. Надо при добавлении файлов давать им file_order по порядку.

Аватар

prostogorod

Member
#48   27 апреля 2017 22:20

Обнаружил баг, когда не зарегистрированный пользователь заходит на страницу добавления, возникает ошибка

SQL error 42000: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE g.grp_id IN ( SELECT gru_groupid FROM cot_groups_users WHERE gru_userid = ' at line 5
#0  cot_diefatal(SQL error 42000: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE g.grp_id IN ( SELECT gru_groupid FROM cot_groups_users WHERE gru_userid = ' at line 5) called at [/home/========/============net./=====/system/database.php:582]
#1  CotDB->query(SELECT MAX(g.grp_pfs_maxfile) AS size_maxfile,  MAX(g.grp_pfs_maxtotal) AS size_maxtotal,
            SUM(f.file_size) as size_used, MAX(g.grp_files_perpost) as count_max
          FROM cot_groups as g
          LEFT JOIN cot_files as f ON f.file_source!='sfs' AND f.user_id=
          WHERE g.grp_id IN ( SELECT gru_groupid FROM cot_groups_users WHERE gru_userid =   )) called at [/home/=====/=======.net/=====/modules/files/inc/files.functions.php:279]

То есть ошибка возникает при запросе в  файле files.functions.php

    $tmp = cot::$db->query("SELECT MAX(g.grp_pfs_maxfile) AS size_maxfile,  MAX(g.grp_pfs_maxtotal) AS size_maxtotal,
            SUM(f.file_size) as size_used, MAX(g.grp_files_perpost) as count_max
          FROM $db_groups as g
          LEFT JOIN $db_files as f ON f.file_source!='sfs' AND f.user_id={$urr['user_id']}
          WHERE g.grp_id IN ( SELECT gru_groupid FROM $db_groups_users WHERE gru_userid = {$urr['user_id']}  )")->fetch();

 

Когда зарегистрированый пользователь  открывает страницу добавления, то такой ошибки нет.

Липницки Андрей

Липницки Андрей

Member
#49   27 апреля 2017 23:38

Где именно такое возникает? У меня всюду пишет "вам запрещено" и тд...

Алексей

Алексей

Administrator
#50   28 апреля 2017 08:59

@Липницки Андрей. По поводу порядка загрузки. Включите в настройках последовательную загрузку, вместо паралельной. Загружаться будет несколько медленнее, но очередь должна сохраниться.

@prostogorod

Обнаружил баг, когда не зарегистрированный пользователь заходит на страницу добавления, возникает ошибка

Спасибо. У себя не замечал - гости нормально добавляют файлы. Но проверю на всякий случай. Из Вашего примера видно, что при во время срабатывания ошибки не определена переменная  $urr. Что за модуль ее вызывает?

 

Где именно такое возникает? У меня всюду пишет "вам запрещено" и тд...

Это у Вас просто запрещен доступ для гостей.

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

prostogorod

Member
#51   28 апреля 2017 10:25
#10435 Alex:

Из Вашего примера видно, что при во время срабатывания ошибки не определена переменная  $urr. Что за модуль ее вызывает?

Модуль page

Причем еще раз проверил, скачал котонти и модуль files- ошибка осталась...

Отредактировано: prostogorod (28.04.2017 15:29, 1 месяц назад)
Алексей

Алексей

Administrator
#52   28 апреля 2017 17:06

Поправил. Скачайте новую версию модуля с гитхаба.

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

prostogorod

Member
#53   28 апреля 2017 18:51

Спасибо! Все работает!

Липницки Андрей

Липницки Андрей

Member
#54   28 апреля 2017 19:07

Может сделаете возможность параллельной загрузки с сохранением порядка файлов заодно?)

Аватар

prostogorod

Member
#55   02 мая 2017 14:34

1.  Выявил еще баг не работает лимин на количество загруженых файлов

{PHP|cot_files_filebox('page', 0, 'logo','image', 2)}


У меня стоит 2, но можно неограниченно добавлять...

2. В настройках разрешенные типы файлов добавил расширение mp4 и  в функцию cot_files_getMime дописал 'mp4' => 'video/mp4',

{PHP|cot_files_filebox('wedding', 0, 'gallery', 'video', 0)}

Но при загрузке видео с расширение mp4, ошибка такой тип файлов не разрешен. Как решить это?

3. И еще как валидировать с помощью cot_page_validate  запонено ли поле добавление файлов на страницу?

Заранее благодарен за ответ!

Отредактировано: prostogorod (02.05.2017 15:08, 1 месяц назад)
Алексей

Алексей

Administrator
#56   02 мая 2017 18:39
#10440 Kopusha:

Может сделаете возможность параллельной загрузки с сохранением порядка файлов заодно?

Это не быстро, но: https://github.com/Alex300/files/issues/33

 

#10441 prostogorod:

1. Выявил еще баг не работает лимин на количество загруженых файлов

Это уже было: https://github.com/Alex300/files/issues/12

 

#10441 prostogorod:

2. В настройках разрешенные типы файлов добавил расширение mp4 и в функцию cot_files_getMime дописал 'mp4' => 'video/mp4',

{PHP|cot_files_filebox('wedding', 0, 'gallery', 'video', 0)}
Но при загрузке видео с расширение mp4, ошибка такой тип файлов не разрешен. Как решить это?

Обновитесь на новую версию с Гитхаба. Ошибка там исправлена.

Потестируйте, пожалуйста новую версию. Что то я с ним вчера до поздна засиделся. Мало ли.

Нет необходимости каждый раз обновлять функцию cot_files_getMime. Она сначала пытается получить mime-тип встроенными в PHP средствами. Если Ваша версия PHP ими не обладает, тогда использует массив соответствий расширений файлов и mime-типов. Хотя в последнем случае было бы предпочтительнее обновить PHP :)

 

#10441 prostogorod:

3. И еще как валидировать с помощью cot_page_validate запонено ли поле добавление файлов на страницу?

Написать плагин, который использует хуки, предоставляемые этой функцией.

Отредактировано: Alex (03.05.2017 12:43, 1 месяц назад)

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

prostogorod

Member
#57   11 мая 2017 22:16
#10442 Alex:

Обновитесь на новую версию с Гитхаба. Ошибка там исправлена.

Потестируйте, пожалуйста новую версию. Что то я с ним вчера до поздна засиделся. Мало ли.

Спасибо! Протестировал, работает отлично!
Липницки Андрей

Липницки Андрей

Member
#58   13 мая 2017 15:04
Спасибо! Протестировал, работает отлично!

У меня тоже!

Аватар

prostogorod

Member
#59   20 июня 2017 12:51

Добрый день!
Столкнулся вроде с простой ситуацией, но решить не могу... Форма отправляеться без проверки загружен ли хотя бы один файл. 
Как средствами jQuery, сделать простую валидацию на заполнение хотя бы одного файла, а если не заполнено поле файл, то выдавать ошибку?

Побовал так, не помогло...

<script>
$('#form-one').validate({
   rules: {
       "files[]": {
                     required: true,

                  }
        }
});	
 </script>