Example #1
0
function MG_processDir($dir, $album_id, $purgefiles, $recurse)
{
    global $_TABLES, $LANG_MG02;
    if (!@is_dir($dir)) {
        $display = COM_showMessageText($LANG_MG02['invalid_directory'] . '  [ <a href=\'javascript:history.go(-1)\'>' . $LANG_MG02['go_back'] . '</a> ]');
        $display = MG_createHTMLDocument($display);
        COM_output($display);
        exit;
    }
    if (!($dh = @opendir($dir))) {
        $display = COM_showMessageText($LANG_MG02['directory_error'] . '  [ <a href=\'javascript:history.go(-1)\'>' . $LANG_MG02['go_back'] . '</a> ]');
        $display = MG_createHTMLDocument($display);
        COM_output($display);
        exit;
    }
    while (($file = readdir($dh)) != false) {
        if ($file == '..' || $file == '.') {
            continue;
        }
        set_time_limit(60);
        $filename = $file;
        if (PHP_OS == "WINNT") {
            $filetmp = $dir . "\\" . $file;
        } else {
            $filetmp = $dir . '/' . $file;
        }
        if (is_dir($filetmp)) {
            if ($recurse) {
                $statusMsg .= MG_processDir($filetmp, $album_id, $purgefiles, $recurse);
            }
        } else {
            $max_filesize = DB_getItem($_TABLES['mg_albums'], 'max_filesize', 'album_id=' . intval($album_id));
            if ($max_filesize != 0 && filesize($filetmp) > $max_filesize) {
                COM_errorLog("MG Upload: File " . $file . " exceeds maximum filesize for this album.");
                $statusMsg = sprintf($LANG_MG02['upload_exceeds_max_filesize'] . '<br' . XHTML . '>', $file);
                continue;
            }
            $filetype = "application/force-download";
            $opt = array('upload' => 0, 'purgefiles' => $purgefiles, 'filetype' => $filetype);
            list($rc, $msg) = MG_getFile($filetmp, $file, $album_id, $opt);
            $statusMsg .= $file . ' ' . $msg . '<br' . XHTML . '>';
        }
    }
    closedir($dh);
    return $statusMsg;
}
Example #2
0
function MG_processDir($dir, $album_id, $purgefiles, $recurse)
{
    global $MG_albums, $_FILES, $_CONF, $_MG_CONF, $LANG_MG02, $_POST;
    if (!@is_dir($dir)) {
        $display = MG_siteHeader();
        $display .= MG_errorHandler($LANG_MG02['invalid_directory']);
        $display .= MG_siteFooter();
        echo $display;
        exit;
    }
    if (!($dh = @opendir($dir))) {
        $display = MG_siteHeader();
        $display .= MG_errorHandler($LANG_MG02['directory_error']);
        $display .= MG_siteFooter();
        echo $display;
        exit;
    }
    while (($file = readdir($dh)) != false) {
        if ($file == '..' || $file == '.') {
            continue;
        }
        set_time_limit(60);
        $filename = $file;
        if (PHP_OS == "WINNT") {
            $filetmp = $dir . "\\" . $file;
        } else {
            $filetmp = $dir . '/' . $file;
        }
        if (is_dir($filetmp)) {
            if ($recurse) {
                $statusMsg .= MG_processDir($filetmp, $album_id, $purgefiles, $recurse);
            }
        } else {
            $filename = basename($file);
            $file_extension = strtolower(substr(strrchr($filename, "."), 1));
            if ($MG_albums[$album_id]->max_filesize != 0 && filesize($filetmp) > $MG_albums[$album_id]->max_filesize) {
                COM_errorLog("MG Upload: File " . $file . " exceeds maximum filesize for this album.");
                $statusMsg = sprintf($LANG_MG02['upload_exceeds_max_filesize'] . '<br/>', $file);
                continue;
            }
            //This will set the Content-Type to the appropriate setting for the file
            switch ($file_extension) {
                case "exe":
                    $filetype = "application/octet-stream";
                    break;
                case "zip":
                    $filetype = "application/zip";
                    break;
                case "mp3":
                    $filetype = "audio/mpeg";
                    break;
                case "mpg":
                    $filetype = "video/mpeg";
                    break;
                case "avi":
                    $filetype = "video/x-msvideo";
                    break;
                default:
                    $filetype = "application/force-download";
            }
            list($rc, $msg) = MG_getFile($filetmp, $file, $album_id, '', '', 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
            $statusMsg .= $file . " " . $msg . "<br/>";
        }
    }
    closedir($dh);
    return $statusMsg;
}