If a file is to be saved in at path /var/www/a/b/c/d/abc.zip where the directory c and d dont exist then the directories have to created.
Here is a function that uses recursion to check for directories in a path and create them if they do not exist :
/** Make a nested path , creating directories down the path Recursion !! */ function make_path($path) { $dir = pathinfo($path , PATHINFO_DIRNAME); if( is_dir($dir) ) { return true; } else { if( make_path($dir) ) { if( mkdir($dir) ) { chmod($dir , 0777); return true; } } } return false; } make_path('/var/www/a/b/c/d/abc.zip');
The above will create the directories a b c and d , after that the path can be used to save a file or do something similar.