Модуль "Папки" (watchfolder)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Osorkon
Сообщения: 21
Зарегистрирован: Ср ноя 09, 2016 4:37 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Модуль "Папки" (watchfolder)

Сообщение Osorkon » Вт мар 21, 2017 5:08 pm

Всем ку!
Вопрос к разработчику(ам) МД:
Может ли сабжевый модуль в качестве переменной возвращать имя файла который был создан. Заложен ли такой функционал для linux (inotify)?
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: Модуль "Папки" (watchfolder)

Сообщение Vovix » Вт мар 21, 2017 7:02 pm

Osorkon писал(а):Всем ку!
Вопрос к разработчику(ам) МД:
Может ли сабжевый модуль в качестве переменной возвращать имя файла который был создан. Заложен ли такой функционал для linux (inotify)?
может это вам поможет: viewtopic.php?f=4&t=2738&p=29300&hilit= ... ers#p29300
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Модуль "Папки" (watchfolder)

Сообщение xor » Вт мар 21, 2017 10:45 pm

Папки передает в указанный при настройке скрипт параметр с фолдером $params['FOLDER'] и файлом $params['FILENAME'] с полным путём

У меня Винда, выглядит так в X-Ray
a:2:{s:6:" FOLDER" ; s:12:" d:/myftp/ipc" ; s:8:" FILENAME" ; s:75:" d:/myftp/ipc/cam2/20170321/IMG001/IMG_chn0_TIMER_MNG_20170321224141_001.jpg" ; }
в скрипте

Код: Выделить всё

//откуда
$filename=$params['FILENAME'];
debmes('newWebCamShoot ->'.$filename);
За это сообщение автора xor поблагодарил:
Osorkon (Ср мар 22, 2017 12:25 pm)
Рейтинг: 1.16%
Osorkon
Сообщения: 21
Зарегистрирован: Ср ноя 09, 2016 4:37 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Модуль "Папки" (watchfolder)

Сообщение Osorkon » Ср мар 22, 2017 12:21 pm

Спасибо за наводку
Как то так, да не так.

Код: Выделить всё

$folder=$params['FOLDER'];
$file_upd=$params['FILES_UPDATED'];
$filename=$params['FILENAME'];
say("filename: ".$filename);
say("folder: ".$folder);
say("path: ".$file_upd);
на выхлопе:
11:08 Ева: filename:
11:08 Ева: folder: /home/pi/FTP
11:08 Ева: path: Array
ну с массивом ладно, но вот почему $FILENAME пустой? оО
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: Модуль "Папки" (watchfolder)

Сообщение DimSun75 » Ср мар 22, 2017 1:20 pm

В x-ray посмотрите, что он там конкретно с скрипт передает

Отправлено с моего SM-G850F через Tapatalk
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Модуль "Папки" (watchfolder)

Сообщение xor » Ср мар 22, 2017 1:34 pm

А это не зависит от выбора в настройках Папок, что-то типа Все изменившихся, только последний (не помню точно)?
Или да, посмотрите в хрее, что передается.

Отправлено с моего Nexus 5 через Tapatalk
За это сообщение автора xor поблагодарил:
Osorkon (Ср мар 22, 2017 2:13 pm)
Рейтинг: 1.16%
Osorkon
Сообщения: 21
Зарегистрирован: Ср ноя 09, 2016 4:37 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Модуль "Папки" (watchfolder)

Сообщение Osorkon » Ср мар 22, 2017 5:47 pm

Да, вы правы :)
Если в настройках указывать "для каждого нового файла", то FILENAME и FOLDER передаются а FILES_UPDATED пустой
Если в настройках "единожды", то передается FOLDER и FILES_UPDATED, причем последний - массив вида:

Код: Выделить всё

Array
(
    [/home/pi/FTP/16988.jpg] => Array
        (
            [FILENAME] => 16988.jpg
            [SIZE] => 0
            [MTIME] => 1490185403
        )

    [/home/pi/FTP/2547.jpg] => Array
        (
            [FILENAME] => 2547.jpg
            [SIZE] => 0
            [MTIME] => 1490185403
        )

)
дальше можно парсить к примеру foreach
Ответить