РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinPmFsMl 40 of 41 menu
◀ ▶

Несколько файлов в Inertia

Давайте рассмотрим ситуацию, когда к записи нужно приложить сразу несколько файлов, а поле принимает только один. Человек выбирает пачку документов, но на сервер уходит лишь первый из них.

У поля ставят атрибут multiple, а имя заканчивают скобками, чтобы на сервер пришёл массив. Каждый файл кладут в папку тем же методом store.

Давайте опишем приём нескольких файлов и список путей:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts/create', function () { return Inertia::render('Posts/Create', [ 'paths' => [], ]); }); Route::post('/posts', function (Request $request) { $paths = []; foreach ($request->file('photos') as $photo) { $paths[] = $photo->store('photos'); } return Inertia::render('Posts/Create', [ 'paths' => $paths, ]); }); ?>

Давайте зададим поле с выбором нескольких файлов и выведем пути списком:

<script setup> import { Form } from '@inertiajs/vue3' defineProps({ paths: Array, }) </script> <template> <Form action="/posts" method="post"> <input type="file" name="photos[]" multiple /> <button type="submit">Save</button> </Form> <ul> <li v-for="path in paths" :key="path"> {{ path }} </li> </ul> </template>

Сделайте так, чтобы к работнику можно было приложить сразу несколько файлов, и на экране были видны пути всех сохранённых.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить