These are chat archives for LaravelRUS/chat

26th
Dec 2017
Roman
@DoctorLines
Dec 26 2017 00:05
Привет всем.
Делаю api метод, который сохраняет mp3 в storage. Там надо проверить, что это реально mp3, а не левый файл.
А проблема в следующем:
rules в валидаторе (это я уже максимально упростил)
['file' => 'mimetypes:audio/mpeg'] не пускают ни один mp3
посмотрел, какие данные определяются для mp3:
        "original_name": "Дельфин - Весна.mp3",
        "getExtension": "",
        "getBasename": "phpbUty92",
        "guessExtension": "bin",
        "getMimeType": "application/octet-stream",
        "getClientMimeType": "audio/mpeg",
        "getFilename": "phpbUty92",
        "getFileInfo": {},
        "phpv": "7.1.9-1+ubuntu16.04.1+deb.sury.org+1",
        "post_max_size": "100M"
application/octet-stream <-- и так для любого mp3 файла
Roman
@DoctorLines
Dec 26 2017 00:11
Что можно тут сделать?
Makarenkov Aleksandr
@trustedperson
Dec 26 2017 00:12
@atehnix спасибо, просек тему)
Roman
@DoctorLines
Dec 26 2017 00:53
мда, похоже из коробки валидатор кривой, придется свой пилить
Andrei Sosnov
@atehnix
Dec 26 2017 01:22
@DoctorLines linux/win?
Roman
@DoctorLines
Dec 26 2017 01:23
linux
Andrei Sosnov
@atehnix
Dec 26 2017 01:25
@DoctorLines Ок. Просто под виндой меньше шансов сдетектить mime. Детектит там не лара, а симфони,
через запуск file -b --mime myfile.mp3, а под виндой нету file.
Roman
@DoctorLines
Dec 26 2017 01:26
ага, кстати этот способ не совсем верный
@atehnix например file -b --mimeдля mp3 под ubuntu 16 будет всегда application/octet-stream выдавать
а на ubuntu 12 или 14 audio/mpeg
уже проверил на нескольких системах
Andrei Sosnov
@atehnix
Dec 26 2017 01:32
@DoctorLines А точно одинаковый файл проверял?
Насколько знаю, там от разных "внутренних" нюансов файла может зависеть.
Ubuntu 16.04 (через WSL) один файл audio/mpeg, другой application/octet-stream
Roman
@DoctorLines
Dec 26 2017 01:34
@atehnix да, точно одинаковый. И загружал на диск разными способами, и через scp и через wget
На виртуалке так же, с расшареной папкой по nfs

@atehnix

Ubuntu 16.04 (через WSL) один файл audio/mpeg

на такой же системе у меня еще не один mp3 как audio/mpeg не определился )) но я пока штуки 4 попробовал из разных источников.

Makarenkov Aleksandr
@trustedperson
Dec 26 2017 11:48
изображение.png
@DoctorLines может эти правила помогут?
У себя не проверял еще
@DoctorLines пишут что mpga в случае с mp3 помогает, попробуй
mimes:mpga
Roman
@DoctorLines
Dec 26 2017 12:02
@trustedperson нет, к сожалению
в моем случае guessExtension определяется как bin по этому такое правило не катит)
да тут один выход, определять mime своими средствами, и писать свое правило валидации
Ваня Devium
@webdevium
Dec 26 2017 12:05
https://gist.github.com/amsgames/8b1f6d3796037654cf4e простите, такое пробовали?
Roman
@DoctorLines
Dec 26 2017 12:06
@webdevium судя по исх. коду, оно анализирует содержимое $value->getMimeType()
а у меня там application/octet-stream
не сработает :(
Ваня Devium
@webdevium
Dec 26 2017 12:07
+
тогда, единственно верное решение, но к сожалению привязанное к серваку - хачить /etc/mime.types
Roman
@DoctorLines
Dec 26 2017 12:10
@webdevium да там вроде как есть mp3 и связанный с ним audio/mpeg
Ваня Devium
@webdevium
Dec 26 2017 12:10
@DoctorLines надо изучать
Roman
@DoctorLines
Dec 26 2017 12:10
Я даже sudo update-mime-database /usr/share/mime делал
ага, надо изучать
Ваня Devium
@webdevium
Dec 26 2017 12:13
а что если к чертям пыху?)))
sx000
@sx000
Dec 26 2017 12:14
Поздравляю всех с наступающим новым годом!
Roman
@DoctorLines
Dec 26 2017 12:16
@webdevium вот черти обрадуются %))
Makarenkov Aleksandr
@trustedperson
Dec 26 2017 12:16
@webdevium Недавно сам об этом думал xD
Ваня Devium
@webdevium
Dec 26 2017 12:17
просто я смотрю как делают в других технологиях: ребята вообще не стесняются держать свои личные справочники и нормально себя чувствуют
Roman
@DoctorLines
Dec 26 2017 12:22
кстати, недавно понадобилось сделать range дробного числа, ну тоесть примерно так: range(0.0, 5.5, 0.1), лучше бы я не пробовал))
по дукументации она должна делать массив значений до максимального включительно, а по факту с дробными всегда будет по разному
Ваня Devium
@webdevium
Dec 26 2017 12:23
@DoctorLines стандарты хранения дробных чисел никто не отменял
Roman
@DoctorLines
Dec 26 2017 12:25
да понятное дело, просто иногда об этом забываю
Makarenkov Aleksandr
@trustedperson
Dec 26 2017 12:27
@DoctorLines думай о дробных числах как о парнях, которые всегда готовы пырнуть тебя в спину, стоит только отвернуться xD
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 13:41
В Ларе 5,5 при моих косяках, ошибся с названием роута, в вид не то передал и т.д. начинает подвисать, в процессах httpd.exe захватывает 25-30% от ЦП. Т.е. ошибку не выдает а в режиме ответа от сервера. Я так понимаю это из за Whoops
Кто то сталкивался с подобным?
Как то можно сделать чтобы сразу ошибку получать?
Ваня Devium
@webdevium
Dec 26 2017 13:48
@Vmelnikoff не использовать апач
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 13:52
@webdevium я под OpenServer, в nginx достаточно как в доке добавить одно правило?
location / { try_files $uri $uri/ /index.php?$query_string; }
Ваня Devium
@webdevium
Dec 26 2017 13:53
угу
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 14:25
Странно сайт который работал под апач, теперь под nginx - 502 Bad Gateway
Nginx-1.12_vhost.conf в /public/ положил, сервер перезапустил
Ваня Devium
@webdevium
Dec 26 2017 14:27
@Vmelnikoff fpm криво настроен или root неадекватный проставлен
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 14:31
@webdevium тут странность что с этим же Nginx-1.12_vhost.conf другие сайты из папки /domains/ работают - мистика
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 14:44
А кажется стал понимать почему подвисает, он вероятно не может подгрузить стили из public/css
т.е. этот адрес для него недоступен - http://larataskauth/css/app.css
А как можно поменять правило для nginx, чтобы сделать доступной все что находится в /public/?
Ваня Devium
@webdevium
Dec 26 2017 14:46
@Vmelnikoff nginx на public и нужно натравить
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 14:54
@webdevium а как? у меня - http://SSMaker.ru/41b47142/
Ваня Devium
@webdevium
Dec 26 2017 14:56
deny в конце должен быть. матчасть :)
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 15:03
@webdevium Попробовал и переставить наверх и закомментить запрет, тишина. - http://SSMaker.ru/9829b602/
Может у кого есть рабочий nginx.conf для Лары на OpenServere?
Vitaly Melnikov
@Vmelnikoff
Dec 26 2017 16:30
@Lander931 спасибо попробую, сейчас что то даже на апаче перестало запускаться, что то не так на уровне вывода вида
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:19

Всем привет ребята!
Заметил такую странную багу. Короче создал таблицу:

// Где-то в миграциях
$table->timestamp('timeout_at');

Затем создаю модель, при создании модели записываю в поле какую-нибудь дату $model->timeout_at = Carbon::now()->addHours(24);, затем получаю модель ч/з SomeModel::find($id); и всё норм, поле timeout_at хранит верную дату.
Но стоит сделать что-нибудь такое:

$someModel->update(['another_field' => true]);

и дата в поле timeout_at становится такой же как и в updated_at... Кто-то сталкивался с этим? Никаких observer'ов нет, скажу сразу.

Ваня Devium
@webdevium
Dec 26 2017 19:19
@Nur777 мат. часть хромает у тебя
виновен не laravel, а mysql 5.7
тебя послать в доку мускула и ты станешь круто понимать или сказать тебе как решить проблему и ты не будешь круто понимать?
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:20
Хм, так а что же он обновляет поле с датой, если оно хранит что-то? Да, возможно я нуб)
@webdevium сказать как давно уже так стало? и подсказать как решить проблему) и послать в доку потом :)
ну наверное надо nullable() дописать.
Ваня Devium
@webdevium
Dec 26 2017 19:21
красава!
а чего так, знаешь?
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:21
я уже пробовал просто так, и не понял почему же так (всмысле с nullable() всё стало норм)
@webdevium не, не знаю, хотел бы понять.
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:22
@webdevium благодарю! :)
Lander931
@Lander931
Dec 26 2017 19:23
@Nur777 принято говорить спасибо и ник)
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:23
Даже представить страшно, что творится в тех проектах, где я это не учёл...
@webdevium спасибо
Ну и где бот?)
Lander931
@Lander931
Dec 26 2017 19:23
эй, бот ты где?
Ваня Devium
@webdevium
Dec 26 2017 19:23
сдох бот
устал
Ilnur Shaykhutdinov
@Nur777
Dec 26 2017 19:23
Я просто помню он и на благодарю реагировал)
Ваня Devium
@webdevium
Dec 26 2017 19:23
от количества простых вопросов)
Lander931
@Lander931
Dec 26 2017 19:24
))
Спасибо (+1) для @webdevium принято! Текущая карма +100500.
sx000
@sx000
Dec 26 2017 20:21
$messages = [
                'required'=>'Ты обязан заполнить это :attribute',
                'digits'=>'В этом поле :attribute только цифры можно юзать',
                'unique'=>'С таким значением :attribute уже есть запись',
                'required.char_code' => 'Код (char) Нужно ввести значение из 3 символов большими буквами'
            ];

            $rullers = [
                'num_code'    => 'required|digits:3|unique:currencies,num_code',
                'char_code'   => 'required|regex:/^[A-Z]+$/u|size:3|unique:currencies,char_code',
            ];
l5,4
Подскажите почему не работает кастомное сообщение required.char_code
Ваня Devium
@webdevium
Dec 26 2017 20:22
@sx000 весь код нормально покажи
вроде как все по ману же, чего оно не хотеть работать :)
Ваня Devium
@webdevium
Dec 26 2017 20:25
@sx000 точно char_code в реквесте естЬ?
sx000
@sx000
Dec 26 2017 20:27
да он пишет дефолтный мессадж что типа Ты обязан заполнить это char code
Ваня Devium
@webdevium
Dec 26 2017 20:28
@sx000 поменяй их местами
'required.char_code' => ...,
'required' => ...,
та же бяка
я менял их уже :), что тока не делал
Ваня Devium
@webdevium
Dec 26 2017 20:30
странно, странно
sx000
@sx000
Dec 26 2017 20:30
угу
Ваня Devium
@webdevium
Dec 26 2017 20:30
тьфу, йопть
sx000
@sx000
Dec 26 2017 20:30
чего
Ваня Devium
@webdevium
Dec 26 2017 20:31
required.char_code по доке?! char_code.required вот! по доке
sx000
@sx000
Dec 26 2017 20:31
емае
Ваня
@webdevium спасибо
че то бот опять сломался
Ваня Devium
@webdevium
Dec 26 2017 20:32
@sx000 салага :) доку читай внимательней. А то я уже старый, мне очень трудно такие неточности находить.
sx000
@sx000
Dec 26 2017 20:33
не поверишь я тоже старый :), но я не программист прям ... просто вынуждено сам пишу. Во первых интересно во вторых люблю независимость. Еще раз спасибо Вань
к стати
'char_code.regex:/^[A-Z]+$/u' => 'Код (char) Нужно ввести значение из 3 символов большими буквами',
вот такая страшная конструкция уже не будет работать
Ваня Devium
@webdevium
Dec 26 2017 20:36
@sx000 для таких штук уже тупо свои валидаторы писать надо
sx000
@sx000
Dec 26 2017 20:36
'char_code.regex'
так вот будет
Ну лана, спасибо еще раз тебе и с наступающим
Ваня Devium
@webdevium
Dec 26 2017 20:36
рано еще праздновать
еще два гугла написать можно до нового года
sx000
@sx000
Dec 26 2017 20:37
так уж и два
:)
альтависту мож и можно