Laravel 5.8 Невозможно найти файл по пути - PullRequest
0 голосов
/ 20 апреля 2020

Я знаю, что было много подобных проблем, но я не мог найти решение для моей проблемы.

Я пытаюсь выполнить тест для загрузки файла PDF, но у меня появляется сообщение " Невозможно найти файл по пути [document.pdf]. ". Кажется, все в порядке, согласно документам Laravel. Чего мне не хватает?

Контроллер работает нормально, как и положено - он создает каталог, сохраняет файл и возвращает поток с помощью библиотеки PDFDOM.

Моя файловая система

'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
        'url' => storage_path('app')
    ],

    'pdf' => [
        'driver' => 'local',
        'root' => storage_path('pdf_reports'),
        'url' => storage_path('pdf_reports')
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
],

Мой контроллер

public function export_report(Request $request){    
    $path = 'internal/2020/APR/20/report.pdf';
    $pdf = PDF::loadView('admin.report');
    $content = $pdf->download()->getOriginalContent();
    Storage::disk('pdf')->put($path , $content);
    return $pdf->stream(\Carbon\Carbon::now()->format('d_M_Y').'report.pdf');
}

Мой TestCase

public function pdf_uploaded()
{
    Storage::fake('pdf');

    $file = UploadedFile::fake()->create('document.pdf', -1024);

    $response = $this->json('POST', '/export/report', [
        'file' => $file,
    ]);

    // Assert the file was stored...
    Storage::disk('pdf')->assertExists($file->hashName());
}

1 Ответ

0 голосов
/ 20 апреля 2020

Ошибка здесь $file = UploadedFile::fake()->create('document.pdf', -1024);

Вам необходимо указать путь к файлу, например, public_path('document.pdf'), предполагая, что файл document.pdf существует в папке publi c.

...