Laravel 5.5 читает файл с локального диска
Я пытаюсь импортировать CSV-файл с Laravel 5.5 из локального расположения файла. По какой-то причине он не может найти файл на моем компьютере, однако путь указан правильно.
$fileLocation = $request->file('file')->store('csv');
$importFile = File::file(storage_path('app/' . $fileLocation));
3 ответа
Вы можете использовать Storage
фасад для этого. Вот пример:
if (Storage::disk($disk)->exists($filename)) {
return Storage::disk($disk)->get($filename);
}
throw new FileNotFoundException(sprintf('File not found: %s', $filename), 404);
Если вы не хотите использовать Storage
фасад, вы можете использовать приведенный ниже код, чтобы получить файл
$importFile = File::get(storage_path('app/' . $fileLocation));
но когда вы сохраняете файл с csv в качестве аргумента store, он сохраняется в storage/csv
папка, и вам просто нужно позвонить storage_path($fileLocation)
,
убедитесь, что ваш путь хранения указан правильно, а дополнительную информацию читайте здесь
Несмотря на то, что прошло 5 лет, я хочу ответить на вопрос.
Я столкнулся с той же проблемой и не смог получить PDF-файл из своего хранилища.
после этого я понял, что путь, который я указываю функции get, неправильный.
Я давал неправильный путь, например:
/app/public/book/example.pdf
правильный путь:
/public/book/example.pdf
так:
$filePath = '/public/book/example.pdf';
$file = Storage::get($filePath);
тотget()
метод вернетnull
если файл не существует.
еслиexist()
метод вернетfalse
если файл не существует.