function _dir_WgetFile($url, $target_dir) { require_once 'inc/functions/functions.core.tfb.php'; global $cfg; $filename = ""; $downloadMessages = array(); if (!empty($url)) { $arURL = explode("/", $url); $filename = urldecode($arURL[count($arURL) - 1]); // get the file name $filename = str_replace(array("'", ","), "", $filename); $filename = stripslashes($filename); // Check to see if url has something like ?passkey=12345 // If so remove it. if (($point = strrpos($filename, "?")) !== false) { $filename = substr($filename, 0, $point); } $ret = strrpos($filename, "."); $url = str_replace(" ", "%20", $url); // This is to support Sites that pass an id along with the url for downloads. $tmpId = tfb_getRequestVar("id"); if (!empty($tmpId)) { $url .= "&id=" . $tmpId; } // retrieve the file require_once "inc/classes/SimpleHTTP.php"; $content = SimpleHTTP::getData($url); if (SimpleHTTP::getState() == SIMPLEHTTP_STATE_OK && strlen($content) > 0) { $fileNameBackup = $filename; $filename = SimpleHTTP::getFilename(); if ($filename != "") { $filename = _dir_cleanFileName($filename); } if ($filename == "" || $filename === false) { $filename = _dir_cleanFileName($fileNameBackup); if ($filename === false || $filename == "") { $filename = _dir_cleanFileName(SimpleHTTP::getRealUrl($url)); if ($filename === false || $filename == "") { $filename = _dir_cleanFileName(md5($url . strval(@microtime()))); if ($filename === false || $filename == "") { // Error array_push($downloadMessages, "failed to get a valid filename for " . $url); } } } } if (empty($downloadMessages)) { // no messages // check if content contains html if ($cfg['debuglevel'] > 0) { if (strpos($content, "<br />") !== false) { AuditAction($cfg["constants"]["debug"], "download-content contained html : " . htmlentities(addslashes($url), ENT_QUOTES)); } } if (is_file($target_dir . $filename)) { // Error array_push($downloadMessages, "the file " . $filename . " already exists on the server."); } else { // write to file $handle = false; $handle = @fopen($target_dir . $filename, "w"); if (!$handle) { array_push($downloadMessages, "cannot open " . $target_dir . $filename . " for writing."); } else { $result = @fwrite($handle, $content); @fclose($handle); if ($result === false) { array_push($downloadMessages, "cannot write content to " . $filename . "."); } } } } } else { $msgs = SimpleHTTP::getMessages(); if (count($msgs) > 0) { $downloadMessages = array_merge($downloadMessages, $msgs); } } if (empty($downloadMessages)) { // no messages AuditAction($cfg["constants"]["url_upload"], $filename); } } else { array_push($downloadMessages, "Invalid Url : " . $url); } if (count($downloadMessages) > 0) { AuditAction($cfg["constants"]["error"], $cfg["constants"]["url_upload"] . " :: " . $filename); @error("There were Problems", "", "", $downloadMessages); } }