Example #1
0
function del_dir_tree($dir)
{
    $files = array_diff(scandir($dir), array('.', '..'));
    foreach ($files as $file) {
        is_dir("{$dir}/{$file}") ? del_dir_tree("{$dir}/{$file}") : unlink("{$dir}/{$file}");
    }
    return rmdir($dir);
}
Example #2
0
function multiple_upload($source_dir, $repository_id_node_mapping = null, $delete_source_dir = true)
{
    if (!is_dir($source_dir) || !($handler = opendir($source_dir))) {
        drupal_set_message('multiple_upload(): cannot read source directory.');
        throw new Exception('multiple_upload(): cannot read source directory.');
    }
    $archives = array();
    while (($file_or_dir = readdir($handler)) !== false) {
        if ($file_or_dir == '.' || $file_or_dir == '..') {
            continue;
        }
        $repository_id = filename_without_ext($file_or_dir);
        $node = null;
        if (!empty($repository_id_node_mapping)) {
            $nid = $repository_id_node_mapping[$repository_id];
            delete_collection_files($nid);
            //20151217 add, if there are files of this collection, delete them first.
            $node = node_load($nid);
        }
        $archives[] = move_to_archive($source_dir . DIRECTORY_SEPARATOR . $file_or_dir, $node);
        // if $node is empty, a new node is created in move_to_archive
    }
    if ($delete_source_dir) {
        del_dir_tree($source_dir);
    }
    //mylog(print_r($archives, true), 'archives.txt');
    bg_mconvert($archives, uniqid());
}