Laravel по-русски

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

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

#1 24.10.2017 11:30:21

Проверка загруженного файла

Добрый день.
Ларавел 5.5

Загружаю файл через форму.

В обработке валидации надо пройтись по этому файлу - построчно и проверить количество и формат строк.

Не могу понять как это правильно сделать.

Создал отдельное правило:

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class FileStructureRule implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string $attribute
     * @param  mixed $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        return false;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return trans('messages.projectFileValidation');
    }
}

В

    public function passes($attribute, $value)
    {
        return false;
    }

в $value получаю

Illuminate\Http\UploadedFile Object
(
    [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
    [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.txt
    [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => text/plain
    [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 55
    [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
    [hashName:protected] => 
    [pathName:SplFileInfo:private] => D:\Test\OpenServer\userdata\temp\php78C.tmp
    [fileName:SplFileInfo:private] => php78C.tmp
)

Как я понимаю сейчас предполагается куда нить этот файл сохранить и потом с ним работать.
Но как то не очень мне это нравится - может есть способ правильнее

Не в сети

#2 24.10.2017 13:28:35

Re: Проверка загруженного файла

Как я понимаю сейчас предполагается куда нить этот файл сохранить и потом с ним работать.

Файл загружается в временную директорию (указывается в php.ini).
С этим файлом можно полноценно работать (но, никто не оставляет файл во временной директории, потому-что предполагается, что ее можно безболезненно очистить в любой момент времени).

https://laravel.com/api/5.5/Illuminate/ … ethod_path
Берешь путь до файла (метод path()) - и там уже как угодно открываешь, после - валидируешь.

Изменено covobo (24.10.2017 13:30:06)

Не в сети

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