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если файл не существует.

Другие вопросы по тегам