Задать вопрос

Не загружаются картинки в Laravel по ajax — где я ошибаюсь?

Загрузка состоит из роута и контроллера.
С роутом все просто, а вот код контроллера:
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller
{
    public function upload (Request $request) {
        $path = public_path('uploads/images/');

        foreach ($request->file() as $file) {
            foreach ($file as $f) {
                $f->move($path, str_random(5).'_'.$f->getClientOriginalName());
            }
        }
        return 'Успех '.$path;
    }
}

Ответ на запрос возвращается "успех" и путь до файла, то есть отрабатывает код без ошибок.

Сам файл отправляется 100%, так как консоль его выводит в FormData.
В чем можыд быд проблемес?
  • Вопрос задан
  • 764 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 2
neuotq
@neuotq
Прокрастинация
Начнем с того что ты не указал имя файла ну и в Laravel есть система работы с файлами.
Так же не известно что у тебя на фронтенде, настроена ли правильно форма и передача csrf для ajax запросов
примерно вот так должно работать:
//photo - имя поля
if ($request->hasFile('photo')) {
            $files = request()->file('photo');
            foreach ($files as $file) {
               //вернет имя файла, как он будет сохранен. 
                $name = $file->store('photo','public')]);               
            }
}

Файлы загрузятся в /storage/app/public/photo( см первый параметр $file->store, это папка куда, второй тип хранения, для всех или другой), чтобы прокинуть ее в public для доступа извне, есть команда php artisan storage:link - создания симлинка на эту папку в публичной диреткории.
Кароче, читай документацию по файловой системе, там все просто.
Ответ написан
@denisbookreev Автор вопроса
От себя советую 100% метод.
Посмотреть видео с 13 минуты: https://www.youtube.com/watch?v=jy2SUxx6uHc
Не сравнится ни с документацией, ни с ответами на вопросы - сразу все просто и понятно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы