0
votes

I am trying to upload the pdf or doc file on the website made up in laravel. This is my blade page.

          <form action="{{ route('file.upload.post') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="row">
                <input type="text" class="form-control-file" name="title" id="title" aria- 
             describedby="fileHelp", placeholder="title">
                <input type="text" class="form-control-file" name="firstName" id="firstName" aria- 
        describedby="fileHelp", placeholder="First Name">
                <input type="text" class="form-control-file" name="lastName" id="lastName" aria-describedby="fileHelp", placeholder="Last Name">
                <input type="text" class="form-control-file" name="isReviewed" id="isReviewed" aria-describedby="fileHelp", placeholder="isReviewed">

                <div class="col-md-6">
                    <input type="file" name="paper" class="form-control">
                </div>

                <div class="col-md-6">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>

            </div>
        </form>

This is my controller

public function fileUploadPost(Request $request)
{
    $request->validate([
        'firstName'=>'required',
        'lastName'=>'required',
        'isReviewed'=>'required',
        'paper' => 'required|mimes:pdf,xlx,csv|max:2048',
    ]);

    $Submission= new Submission;
    $Submission->title= $request['title'];
    $Submission->first_name= $request['firstName'];
    $Submission->last_name= $request['lastName'];
    $Submission->isReviewed= $request['isReviewed'];


  $fileName= time().'.'.$request->paper->extension();
    $old_path = Request::file('paper')->getPathName(); Storage::disk('Paper')->move($old_path, 
     public_path($fileName));
    $Submission->save();
    return back()
        ->with('success','You have successfully upload file.')
        ->with('file',$fileName);

}

I am getting an error saying that Non-static method Illuminate\Http\Request::file() should not be called statically to fix this i

use Illuminate\Support\Facades\Request

instead of

use Illuminate\Http\Request;

but then I get an error saying I cannot use validation. Any kind of help is appreciated.

1

1 Answers

1
votes

You don't need to use the facade for this. You can still use the standard Illuminate\Http\Request class.

To get the file, you should use:

$request->file('paper')

rather than

Request::file('paper')