1

I get this error when I try to upload movie/video on my site 'You don't have permission to access the requested directory. There is either no index document or the directory is read-protected'. Here is my code

view:

<div class="col-md-6">
      {!! Form::open(['method'=>'POST', 'action'=> 'MovieController@store', 'files' => true]) !!}
   <div class="form-group">
      {!! Form::label('movie_name', 'Select Movie:') !!}
      {!! Form::file('movie_name', null, ['class'=>'form-control'])!!}
   </div>
</div>

controller:

public function store(Request $request){
   $data = $request->all();
   if ($request->hasFile('movie_name')) {
      $file = $request->file('movie_name');
      $name = $file->getClientOriginalName();
      $data[ 'movie_name' ] = $name;
      $destination = '/public/movies';
      $request->file('movie_name')->move(base_path() . $destination, $name);
            return $name;
        } else {
            return false;
        }
      }
rose
  • 447
  • 5
  • 18

2 Answers2

2

Use Laravel's asset helper method to point to the public folder.

Try this:

public function store(Request $request){
   $data = $request->all();
   if ($request->hasFile('movie_name')) {
      $file = $request->file('movie_name');
      $name = $file->getClientOriginalName();
      $data[ 'movie_name' ] = $name;

      $request->file('movie_name')->move(asset('movies'), $name);
            return $name;
        } else {
            return false;
        }
      }
petersowah
  • 728
  • 8
  • 20
0

Try changing '/public/movies' permissions to 775.

sudo chmod -R 775 PATH/TO/DIRECTORY