
Евгений
17.11.2016
14:38:02
надо еще размер изображения отвалидировать например
думал это просто, к реквесту принудительно добавить своё значение перекодировав изображение, а дальше его валидировать как обычно

(;¬_¬)
17.11.2016
14:39:57
ну смотри... картинка в реквесте - инстанс UploadFile
попробуй ручками new UploadFile создать

Google

(;¬_¬)
17.11.2016
14:40:25
и его добавлять

Евгений
17.11.2016
14:40:28
public function rules()
{
$this->request->add(['img' => 'bкмупкп']);
return [
'img' => 'required|image',
];
}

(;¬_¬)
17.11.2016
14:40:29
а не просто картинку

Евгений
17.11.2016
14:40:31
вот смотри
картинка в base64 в поле image, я хочу добавить поле img, и в него сохранить картинку в обычном виде

(;¬_¬)
17.11.2016
14:41:30
давай притормозим на секунду... если бы форма сабмитилась как обычно. как бы ты этот файл валидировал?

Евгений
17.11.2016
14:41:45
'image' => 'image'
нe и размеры там всякие и тд

(;¬_¬)
17.11.2016
14:42:17
т.е. в реквесте был бы 'image'=>UploadFile
так ведь?

Евгений
17.11.2016
14:42:26
да

Джама
17.11.2016
14:42:51
Хардкорщики

(;¬_¬)
17.11.2016
14:43:44
ну тогда логично, что для того чтоб корректно валидировать встроенными правилами - нужно запихать туда UploadFile

Google

Евгений
17.11.2016
14:43:55
как?)

(;¬_¬)
17.11.2016
14:44:17
ВО
https://laravel.com/api/5.2/Illuminate/Http/UploadedFile.html
ваще тащись
createFromBase(UploadedFile $file, bool $test = false)
Create a new file instance from a base instance.
или я его не понял =)
а не, я лох =)
base там base instance а не base64

Джама
17.11.2016
14:45:11
А обычный аплоадинг я так понимаю уже не модный?

Евгений
17.11.2016
14:49:59

Джама
17.11.2016
14:51:45
File upload js + обработка каждого файла не его бэйс64
Что вы хотите валидироввть?
То что это файл или то что это картинка или то что оно вообще есть?

Евгений
17.11.2016
14:52:31
всё, что можно валидировать в laravel
даже например - https://laravel.com/docs/5.3/validation#rule-dimensions
картинка чтоб квадратная была к примеру)

Джама
17.11.2016
14:53:34
А есть ёж пакет для работы с картинками
На пакалисте посмотрите
Он там самый популярный

Google

Евгений
17.11.2016
14:54:33
для лары пакет? есть, но он же сохраняет просто картинку и всякие манипуляции с ними делает
мне не это надо

Джама
17.11.2016
14:55:01
мне не это надо
А что вам надо, вы хотите загрузить картинку но не картинку?
Квадратных кругов не бывает

Евгений
17.11.2016
14:55:19
перед тем как сохранять картинку, надо её отвалидировать
ты мне скажи последовательность действия по твоей логике, может я не понимаю как ты имеешь ввиду сделать
у меня форма, идт ajax запрос, там формреквест, там валидирую. Надо картинку отвалидировать по размерам. Как сделать?

Джама
17.11.2016
14:57:38
Если вы будут отправлять картинку на валидацию с помощью base64 она у вас меньше не будет
Он как весила 1 мегабайт, так её код в base64 и будет весить 1 мг

Евгений
17.11.2016
14:58:24
размер физический, что она квадратная

Джама
17.11.2016
14:58:53
Зачем вам для этого Ларавел вообще?

Евгений
17.11.2016
14:59:01
и даже если так, то laravel строку никак не отвалидирует по размеру как размер картинки. Он отвалидирует как количество символов в строке

Джама
17.11.2016
14:59:09
Сделайте на js
Полным полно jq библиотек

Евгений
17.11.2016
14:59:27
ой всё, ладно, сделаю как сделаю
я задаю конкретный вопрос как сделать то что мне надо, а не то как сделать на js

Джама
17.11.2016
15:00:53
Самое главное будь здоров

Eugeny
17.11.2016
15:04:30
Плюс на js это одна проверка, а пользователь может отправить сам запрос с любой картинкой. Лучше и на пхп проверять

Евгений
17.11.2016
15:07:33
@Denormalization ты вроде говорил что делал на мгу валидацию картинок, напомни решение своё

DDiimmkkaass
17.11.2016
15:15:01
выше все не читал, поэтому может не особо то, но когдато так делал
if (Request::hasFile($field)) {
$file = Request::file($field);
$file_width = getimagesize($file->getRealPath())[0];
$file_height = getimagesize($file->getRealPath())[1];
..... do what you want
}
вроде как работало

Google

Евгений
17.11.2016
15:16:06
ты не читал, говоришь не то
тут вообще нет Request::hasFile($field))
грузится не файл а его base64 строка по аяксу
а надо отвалидировать как обычную картинку
а по высоте и ширине в ларе уже есть дефолтный валидатор

DDiimmkkaass
17.11.2016
15:22:57
значит зря не читал)

B?N
17.11.2016
22:25:05
Validator::extend('image_base64', function($attribute, $value, $parameters, $validator) {
list($width, $height) = $parameters;
$img = imagecreatefromstring(base64_decode($value));
$image_width = imagesx($img);
$image_heigth = imagesy($img);
imagedestroy($img);
// дальше делаешь валидацию
});

Admin
ERROR: S client not available

B?N
17.11.2016
22:25:45
писал сразу в телеграме, могут быть ошибки)

Space
18.11.2016
01:19:27

B?N
18.11.2016
01:19:46
ну это понятно, просто пример сделал )

Евгений
18.11.2016
04:02:37
Спасибо

marabu
18.11.2016
05:57:01
ребят, кто как методы теста назвает? CamelCase или snake_case? И какой способ предпочтительней для пхп?

Владимир
18.11.2016
06:00:58
psr говорит camelcase, но это просто рекомендация
В тему именования методов тестов. У одних ребят подсмотрел, они придерживаются правила "X, given Y, should Z". Например, тестируем метод download с неверным урл -
/** @test */
public function downloadWithInvalidUrlShouldThrow()
Мне показалось это довольно удачным, использую у себя

/
18.11.2016
06:11:51
привет всем ✋?
Кто пользуется vagrant под windows 10?
вопрос, у вас hyper-v включен в компонетах или отключен?

da horsie
18.11.2016
06:37:46

/
18.11.2016
06:46:19

D'
18.11.2016
06:47:06
читал он

Google

D'
18.11.2016
06:47:08
чтец
чукча

(;¬_¬)
18.11.2016
06:47:42

Sergey
18.11.2016
07:00:23
я банально testShortDescription.

D'
18.11.2016
07:00:56
вы еще померьтесь у кого имена тестов длинее
спорим у меня?

Sergey
18.11.2016
07:01:19

D'
18.11.2016
07:01:25
ниразу

Sergey
18.11.2016
07:01:51

D'
18.11.2016
07:01:57
у меня )

Sergey
18.11.2016
07:02:10
ну тогда ты джавист
другого не бывает
:)

D'
18.11.2016
07:02:37
it_should_throw_an_exception_when_invalid_user_id_passed
это средненький

Sergey
18.11.2016
07:03:25
фу ты :) я ж шучу
какая разница какой длины тест? Главное чтобы ассерты были хорошие
Кстати, в PHPUnit багу нашел. Если в дата провайдере возникнет исключение, тест не считается упавшим. Он просто игнорируется