@laravel_pro

Страница 173 из 2014
Евгений
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: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
писал сразу в телеграме, могут быть ошибки)

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
в BIOS виртуализация должна быть включена
я читал что не все процы в это умееют

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

Google
D'
18.11.2016
06:47:08
чтец

чукча

(;¬_¬)
18.11.2016
06:47:42
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

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 багу нашел. Если в дата провайдере возникнет исключение, тест не считается упавшим. Он просто игнорируется

Страница 173 из 2014