Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.02.2013 20:00:49

Ivan

Осуществление загрузки изображений

Здравствуйте. Возник такой вопрос уже 2 часа бьюсь как осуществить загрузку изображений и валидацию полей file

#2 14.02.2013 23:26:48

Re: Осуществление загрузки изображений

Есть перегруженный класс Validator, который я у себя использую. Кроме прочего он может проверять изображения на формат и размеры. Если есть желание разобраться — вот он.

Не в сети

#3 15.02.2013 19:03:52

Ivan

Re: Осуществление загрузки изображений

А как этим классом пользоваться я же новичок все таки

#4 15.02.2013 19:13:11

Ivan

Re: Осуществление загрузки изображений

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

#5 15.02.2013 19:57:03

Re: Осуществление загрузки изображений

Этот класс — часть моего пакета-расширителя Laravel, но он работает и сам по себе.

Порядок действий для использования:

  1. Создать в application/libraries папку Px и сохранить туда Validation.php по ссылке выше.
  2. Добавить языковые строки в application/languages/ru/validation.php — например, рядом с custom.

Пример использования — Blade-шаблон:

PHP
{{ Form::open_for_files('my/upload') }}
{{ 
Form::file('img') }}
{{ 
Form::submit('Upload') }}
{{ 
Form::close() }}

Контроллер/маршрут:

PHP
  $rule 'image:30x30,500x500|format:png,jpg';
  
$validator Px\Validator::make(Input::all(), array('img' => $rule));
  
var_dump($validator->fails(), $validator->errors);

Вывод:

boolean true

object(Laravel\Messages)[37]
  public 'messages' =>
    array
      'img' =>
        array
          0 => string 'img допускается только в форматах PNG, JPG.' (length=69)

Форматы правил:

  1. image:[MIN],[MAX] — где MIN и MAX (любой может быть пропущен) — формата В*Ш. Высота и Ширина могут быть пропущены, а вместо звёздочки использоваться любой из символов * x X.
  2. format:f1,f2,... — список форматов. Форматы — любой из поддерживаемых GD, т.е. функций imagecreatefromXXX (например, imagecreatefromjpeg).

Это два разных правила (image и format), можно использовать любой из них, но если использовать оба, то format желательно ставить после image, так как image проверяет успешность загрузки.

  1. а как загружать изображения в папку и получить при это имя файла для записи в бд?

См. доку по PHP.

Не в сети

#6 15.02.2013 20:57:37

Ivan

Re: Осуществление загрузки изображений

Так а где тут функция заливки файла в папку? и как имя полкчить

Подвал раздела