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; }
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; }