Когда я пытаюсь следовать документации по импорту файла, хранящегося на сервере, я получаю Illuminate\Contracts\Filesystem\FileNotFoundException
говорящее File not found at path: [path to file]
. Однако file_exists($path);
возвращает true.
php artisan make:import UsersImport --model=User
.use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;
Excel::import(new UsersImport, storage_path('app/test.xlsx'));
Ожидаемое поведение:
Согласно документам, строки в файле должны быть импортированы в таблицу пользователей.
Фактическое поведение:
Illuminate\Contracts\Filesystem\FileNotFoundException: File not found at path: [path]
@ mattias-persson
Попробуйте вместо этого:
Excel::import(new UsersImport, 'test.xlsx');
См. Импорт с диска по
Ах, моя беда. Я пропустил эту часть документации. Спасибо!
у меня такая же проблема, :(
контроллер:
пространство имен App \ Http \ Controllers \ Admin;
используйте App \ Model \ Mahasiswa;
используйте App \ Model \ UsersImport;
используйте Maatwebsite \ Excel \ Facades \ Excel;
используйте App \ Http \ Controllers \ Controller;
используйте App \ Http \ Requests;
класс UserimController расширяет контроллер
{
публичная функция import ()
{
Excel :: import (новый UsersImport, 'Mahasiswa.xlsx');
return back()->with('success', "Import data succesfull");
}
}
и Мой класс или модель:
пространство имен App \ Model;
используйте App \ Mahasiswa;
используйте Maatwebsite \ Excel \ ConcernsToModel;
класс UsersImport реализует ToModel
{
/ **
public function model(array $row)
{
return new Mahasiswa([
'npm' => $row[0],
'nama_mahasiswa' => $row[1],
'jenis_kelamin' => $row[2],
'tanggal_lahir' => $row[3],
]);
}
}
и ошибка:
Лига \ Flysystem \ FileNotFoundException
Файл не найден по пути: Mahasiswa.xlsx
и:
публичная функция assertPresent ($ path)
{
if ($ this-> config-> get ('disable_asserts', false) === false &&! $ this-> has ($ path)) {
выбросить новое исключение FileNotFoundException ($ path);
}
}
что не так с моей работой :(
Хм
контролер
`
пространство имен App \ Http \ Controllers \ Admin;
используйте App \ Model \ Mahasiswa;
используйте App \ Model \ UsersImport;
используйте Maatwebsite \ Excel \ Facades \ Excel;
используйте App \ Http \ Controllers \ Controller;
используйте App \ Http \ Requests;
класс UserimController расширяет контроллер
{
публичная функция import ()
{
Excel :: import (новый UsersImport, 'Mahasiswa.xlsx');
return back()->with('success', "Import data succesfull");
}
}
`
класс или модель:
`
пространство имен App \ Model;
используйте App \ Mahasiswa;
используйте Maatwebsite \ Excel \ ConcernsToModel;
класс UsersImport реализует ToModel
{
/ **
public function model(array $row)
{
return new Mahasiswa([
'npm' => $row[0],
'nama_mahasiswa' => $row[1],
'jenis_kelamin' => $row[2],
'tanggal_lahir' => $row[3],
]);
}
}
`
и эта ошибка
Лига \ Flysystem \ FileNotFoundException
Файл не найден по пути: Mahasiswa.xlsx
и моя база данных
@GlennM, пожалуйста, помогите мне :(
@GlennM, пожалуйста, помогите мне :(
@ Emha2403 Проверьте, где находится ваш файл. Похоже, файл, который вы пытаетесь импортировать, находится не в нужном месте.
Вы сможете найти правильный каталог, проверив, какой диск вы используете, и найдите соответствующий корневой путь для этого драйвера.
привет, я отвечаю на тот же вопрос, и я уверен, что мой файл был загружен по правильному URL-адресу, который я использую
привет, я отвечаю на тот же вопрос, и я уверен, что мой файл был загружен по правильному URL-адресу, который я использую
@ williams-young Не могли бы вы открыть новый выпуск (согласно шаблону выпуска), указав всю необходимую информацию? Спасибо!
Это не ошибка. Поместите файл Excel в папку «хранилище / приложение». он использует конфигурацию диска по умолчанию в config / filesystems.php
xxxxxxxxxxxxxxxxxxx \ хранилище \ приложение
файл Excel должен идти по следующему пути.
xxxxxxxxxxxxxxxxxxx \ хранилище \ приложение
el archivo excel debe ir en la siguiente ruta.
Пожалуйста, публикуйте любые вопросы или комментарии, связанные с поддержкой, на английском языке, если вы хотите, чтобы мы оказали поддержку.
Я понимаю, что такое поведение задокументировано, но опять же оно кажется странным и неинтуитивным. Если вы передадите ему абсолютный путь к файлу, который возвращается как истинный из file_exists () .... он должен загрузиться. Кажется, с этим пакетом связано много ненужных ошибок, даже при попытке выполнить очень простые операции импорта.
У меня есть 4 столбца XLSX со 100 строками, которые я хочу импортировать в коллекцию. Мне приходилось посещать форумы из-за проблем с filePath, дат, возвращаемых как целые числа, и попытки выяснить, в чем смысл этих сгенерированных классов XYZImport, когда я пытаюсь импортировать небольшой xlsx в коллекцию.
Если вы передадите ему абсолютный путь к файлу, который возвращается как истинный из file_exists () .... он должен загрузиться
Я согласен с этим. Похоже, это вызывает недоумение у многих пользователей.
Я согласен с тем, что это сбивает с толку.
Разве в документации не упоминается путь по умолчанию storage/app
? Я знаю, что это настраивается, и почти уверен, что это облегчит пользователям с меньшими знаниями laravel.
Я согласен с тем, что это сбивает с толку.
Разве в документации не упоминается путь по умолчанию
storage/app
? Я знаю, что это настраивается, и почти уверен, что это облегчит пользователям с меньшими знаниями laravel.
Если вы считаете, что в документации отсутствует какая-либо информация, вы всегда можете отправить запрос на перенос в документацию. Вы можете сделать это, используя ссылку Help us improve this page!
расположенную внизу каждой страницы.
посчитайте меня в замешательстве .. пытался передать абсолютный путь с помощью base_path (), так как мои файлы хранятся вне папки хранилища и в специальной папке "модулей" .. не удалось заставить его работать, наконец-то пришлось переместить мои файлы в путь к хранилищу. Если полученный путь начинается с косой черты, он должен просто предполагать, что это абсолютный путь IMO
Да, вообще-то кажется, что даже после добавления файлов в хранилище он не может их найти. Судя по ответу об ошибке, в конце он пытается указать относительный путь: man_facepalming:.
В течение нескольких месяцев было задокументировано, что использование абсолютных путей возможно: https://docs.laravel-excel.com/3.1/imports/basics.html#importing -full-path
Я заблокирую этот билет, чтобы упростить процесс поддержки. Если возникают новые ошибки или вопросы, пожалуйста, создайте новую проблему с объяснением вашего конкретного случая.
Самый полезный комментарий
Это не ошибка. Поместите файл Excel в папку «хранилище / приложение». он использует конфигурацию диска по умолчанию в config / filesystems.php
Проверьте эту часть документации