Загрузите файл (изображение) на сервер с Laravel, используя FilePond, как? - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь использовать FilePond для загрузки изображения профиля при регистрации пользователя в проекте Laravel 6. В моем register.blade.php у меня есть <input type="file" id="profilePicture" name="profile_picture" accept="image/png, image/jpeg, image/gif">, затем в нижней части файла я написал:

$('input[type="file"]').filepond();

FilePond.setOptions({
    server: {
        url: '/upload',
        method: 'POST',
        headers: {
            'X-CSRF-TOKEN': '{{ csrf_token() }}'
        }
    }
});

в /routes/web.php Я добавил:

Route::post('/upload', 'FilepondController@upload');

и, наконец, , для простоты и только для проверки работоспособности загрузки, в /app/Http/Controllers/FilepondController.php я написал:

class FilepondController extends BaseController
{
    public function upload(Request $request)
    {
        dd($request);
    }
}

, но никогда не запрос приложения dump $ и d ie ... Очевидно, что загрузка через FilePont не удалась.

Я пытался использовать Sopamo / laravel -filepond (Laravel FilePond Backend) тоже безуспешно ...

Что не так?

1 Ответ

0 голосов
/ 29 января 2020

Вы можете использовать метод putFile на фасаде хранилища

По умолчанию метод putFile создает уникальный идентификатор, который будет служить именем файла. Расширение файла будет определено путем изучения типа файла MIME. Путь к файлу будет возвращен методом putFile, чтобы вы могли сохранить путь, включая сгенерированное имя файла, в вашей базе данных.

//...
$path = Storage::putFile('avatars', $request->file('profile_picture'));
$model->profile_picture = $path;
//...

Вы также можете использовать хранилище: ссылка Artisan команда:

php artisan storage:link
...