storage’s server IP address could not be found

Viewed 16

in Laravel 8 i was tried to show pdf file uploaded in storage folder, and i got storage’s server IP address could not be found. i want to uploade pdf file and show it on browser without download it i used controlle function store to upload and show function to show pdf file

<?php

namespace App\Http\Controllers;


use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\App;
use Illuminate\Http\Response;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Pdf;
class PdfController extends Controller
{

        /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    


protected function authenticated(Request $request, $user)
{
if ( $user->isAdmin() ) {// do your magic here
    return redirect()->route('pdfs');
}

 return redirect('/home');
}
    public function __construct()
{
    $this->middleware([
        'auth:sanctum',
        config('jetstream.auth_session'),
        'verified'
    ])->except(['show']);
}
    
    public function index()
    {
        
        $pdfs = Pdf::latest()->paginate(5);
        return view('pdfs.index',compact('pdfs'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('pdfs.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:pdf|max:2048',
        ]);              
            $fileModel = new pdf();
            $pdf = $request->file;
            $fileName = time() .'.pdf';
            $filePath = $pdf->storeAs('uploads', $fileName, 'public');
            $fileModel->name = $fileName;
            $fileModel->file ='/storage/' . $filePath;
            $fileModel->save();
            return redirect()->route('pdfs.index')
            ->with('success','File has been uploaded.')
            ->with('pdf', $fileName);
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Pdf  $pdf
     * @return \Illuminate\Http\Response
     */
    public function show($ip)
    {

    $fileModel = Pdf::find($ip);    

        return view('pdfs.show', compact('fileModel'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Pdf  $pdf
     * @return \Illuminate\Http\Response
     */
    public function edit(Pdf $pdf)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Pdf  $pdf
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Pdf $pdf)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Pdf  $pdf
     * @return \Illuminate\Http\Response
     */
    public function destroy(Pdf $pdf)
    {
        $pdf->delete();
    
        return redirect()->route('pdfs.index')
                        ->with('success','PDF deleted successfully');
    }
}

this is my controller

@extends('pdfs.layout')
  
@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2> Show PDF</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route('pdfs.index') }}"> Back</a>
            </div>
        </div>
    </div>
   
    <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Name:</strong>
                {{ $fileModel->name }}
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <iframe src="/{{ $fileModel->file }}" frameborder="0"></iframe>
            </div>
        </div>
    </div>
@endsection

and this is show.blade.php

0 Answers
Related