1

I have a folder which has file and folders in it and so on. How do i store the same structure in mongodb using PHP? I want the index to be the root folder's name and the structure to resemble the folder structure. Also i want the file data to be stored as it is.

For example :

{

    "Folder1":{
        "Folder2":{ File1:{}
        }
    }

}
jkdev
  • 11,360
  • 15
  • 54
  • 77
Rajat Hans
  • 15
  • 3

1 Answers1

1

With the help of this answer:

$structure = fillArrayWithFileNodes(new DirectoryIterator('/path/to/root/'));
DB::collection('folders')->insert($structure);

fillArrayWithFileNodes function:

function fillArrayWithFileNodes(DirectoryIterator $dir)
{
  $data = array();
  foreach ( $dir as $node )
  {
    if ( $node->isDir() && !$node->isDot() )
    {
      $data[$node->getFilename()] = fillArrayWithFileNodes( new DirectoryIterator( $node->getPathname() ) );
    }
    else if ( $node->isFile() )
    {
      $data[] = $node->getFilename();
    }
  }
  return $data;
}
Community
  • 1
  • 1
Claudio King
  • 1,606
  • 1
  • 10
  • 12
  • I'm using laravel and i keep getting DirectoryIterator::__construct(54117369): failed to open dir: No such file or directory. I'm keeping folders in public folder. – Rajat Hans Apr 30 '16 at 09:23