douzhe1264
douzhe1264
2019-06-30 09:30

如何修复'file_get_content'无法打开流

已采纳

i'm using cups-ipp to print from web project

and i got this error

file_get_contents(./helloworld.pdf): failed to open stream: No such file or directory

I tried to get file from storage but got the same error

        $builder = new Builder();

        $responseParser = new ResponseParser();

        $printerManager = new PrinterManager($builder, $client, $responseParser);
        $printer = $printerManager->findByUri('ipp://localhost:631/printers/HP_HP_ColorLaserJet_MFP_M278-M281');

        $jobManager = new JobManager($builder, $client, $responseParser);
        $filePath = '../../../storage/app/public/estimated_dates.pdf';

        $job = new Job();
        $job->setName('job create file');
        $job->setUsername('demo');
        $job->setCopies(1);
        $job->setPageRanges('1');
        $job->addFile('./helloworld.pdf');
        $job->addAttribute('media', 'A4');
        $job->addAttribute('fit-to-page', true);
        $result = $jobManager->send($printer, $job);

I linked storage and I'm sure that the path is correct (I also used auto complete path plugin)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • doujiao4705 doujiao4705 2年前

    Try to make use of Laravel's base_path() helper.

    base_path() is equal to the root of your project. So, let's, for example, you want to access estimated_dates.pdf. The correct solution would be:

    base_path('storage/app/public/estimated_dates.pdf');
    

    However, you could make use of:

    php artisan storage:link
    

    and you can access the file by: asset('estimated_dates.pdf')

    I guess your helloworld.pdf is in root of the application, so:

    base_path('helloworld.pdf')
    

    base_path(): https://laravel.com/docs/5.8/helpers#method-base-path

    storage:link: https://laravel.com/docs/5.8/filesystem#configuration

    点赞 评论 复制链接分享