function net2ftp_module_sendHttpHeaders() { // -------------- // This function sends HTTP headers // -------------- global $net2ftp_globals, $net2ftp_settings; if (isset($_POST["list"]) == true) { $list = getSelectedEntries($_POST["list"]); } elseif (isset($_GET["list"]) == true) { $list = getSelectedEntries($_GET["list"]); } else { $list = ""; } if ($net2ftp_settings["functionuse_downloadzip"] == "yes") { $zipactions["download"] = "yes"; $zipactions["email"] = "no"; $zipactions["save"] = "no"; ftp_zip("", $net2ftp_globals["directory"], $list, $zipactions, "", 0); } else { $errormessage = __("This function has been disabled by the Administrator of this website."); setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } }
function ftp_zip($conn_id, $directory, $list, $zipactions, $zipdir, $divelevel) { // -------------- // This function allows to download/save/email a zipfile which contains the selected directories and files // -------------- // ------------------------------------------------------------------------- // Global variables // ------------------------------------------------------------------------- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result, $net2ftp_output; // ------------------------------------------------------------------------- // Initialization // ------------------------------------------------------------------------- if ($divelevel == 0) { // Create the zipfile $net2ftp_globals["zipfile"] = new zipfile(); $timenow = time(); $zipdir = ""; // Open the connection $conn_id = ftp_openconnection(); if ($net2ftp_result["success"] == false) { return false; } } // ------------------------------------------------------------------------- // For all directories... // ------------------------------------------------------------------------- for ($i = 1; $i <= $list["stats"]["directories"]["total_number"]; $i = $i + 1) { $newdir = glueDirectories($directory, $list["directories"][$i]["dirfilename"]); $newzipdir = glueDirectories($zipdir, $list["directories"][$i]["dirfilename"]); $newdivelevel = $divelevel + 1; // Check if the directory contains a banned keyword if ($list["directories"][$i]["selectable"] == "banned_keyword") { continue; } // Get a new list $newlist = ftp_getlist($conn_id, $newdir); if ($net2ftp_result["success"] == false) { return false; } ftp_zip($conn_id, $newdir, $newlist, $zipactions, $newzipdir, $newdivelevel); if ($net2ftp_result["success"] == false) { setErrorVars(true, "", "", "", ""); continue; } if ($divelevel == 0 && ($zipactions["save"] == "yes" || $zipactions["email"] == "yes")) { $total = $list["stats"]["directories"]["total_number"] + $list["stats"]["files"]["total_number"]; setStatus($i, $total, __("Processing the entries")); } } // end for directories // ------------------------------------------------------------------------- // For all files... // ------------------------------------------------------------------------- for ($i = 1; $i <= $list["stats"]["files"]["total_number"]; $i = $i + 1) { if ($list["files"][$i]["selectable"] != "ok") { continue; } $text = ftp_readfile($conn_id, $directory, $list["files"][$i]["dirfilename"]); if ($net2ftp_result["success"] == false) { setErrorVars(true, "", "", "", ""); continue; } $filename = stripDirectory(glueDirectories($zipdir, $list["files"][$i]["dirfilename"])); $net2ftp_globals["zipfile"]->addFile($text, $filename); if ($divelevel == 0 && ($zipactions["save"] == "yes" || $zipactions["email"] == "yes")) { $total = $list["stats"]["directories"]["total_number"] + $list["stats"]["files"]["total_number"]; setStatus($list["stats"]["directories"]["total_number"] + $i - 1, $total, __("Processing the entries")); } } // end for files // ------------------------------------------------------------------------- // End // ------------------------------------------------------------------------- if ($divelevel == 0) { // ------------------------ // Send the zipfile to the browser // ------------------------ if ($zipactions["download"] == "yes") { $timenow = time(); $filenameToSend = "net2ftp-" . $timenow . ".zip"; $filesizeToSend = strlen($net2ftp_globals["zipfile"]->file()); sendDownloadHeaders($filenameToSend, $filesizeToSend); echo $net2ftp_globals["zipfile"]->file(); flush(); } // ------------------------ // Save the zipfile string to a file // ------------------------ if ($zipactions["save"] == "yes" || $zipactions["email"] == "yes") { $string = $net2ftp_globals["zipfile"]->file(); $tempfilename = tempnam($net2ftp_globals["application_tempdir"], "zip__"); if ($tempfilename == false) { @unlink($tempfilename); $errormessage = __("Unable to create the temporary file. Check the permissions of the %1\$s directory.", $net2ftp_globals["application_tempdir"]); setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } registerTempfile("register", $tempfilename); local_writefile($tempfilename, $string); if ($net2ftp_result["success"] == false) { return false; } } // ------------------------ // Save the zip file to the FTP server // ------------------------ if ($zipactions["save"] == "yes") { ftp_putfile($conn_id, "", $tempfilename, $directory, $zipactions["save_filename"], FTP_BINARY, "copy"); if ($net2ftp_result["success"] == false) { @unlink($tempfilename); // $errormessage = __("Unable to put the file <b>%1\$s</b> on the FTP server.<br />You may not have write permissions on the directory.", $zipactions["save_filename"]); // setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } else { $net2ftp_output["ftp_zip"][] = __("The zip file has been saved on the FTP server as <b>%1\$s</b>", $zipactions["save_filename"]) . "<br /><br />\n"; } } // ------------------------ // Close the connection // ------------------------ ftp_closeconnection($conn_id); // ------------------------ // Email // ------------------------ if ($zipactions["email"] == "yes") { $FromName = "net2ftp"; $From = $net2ftp_settings["email_feedback"]; $ToName = ""; $To = $zipactions["email_to"]; $Subject = __("Requested files"); // Email message $Text = __("Dear,") . "\n\n"; $Text .= __("Someone has requested the files in attachment to be sent to this email account (%1\$s).", $To) . "\n"; $Text .= __("If you know nothing about this or if you don't trust that person, please delete this email without opening the Zip file in attachment.") . "\n"; $Text .= __("Note that if you don't open the Zip file, the files inside cannot harm your computer.") . "\n"; $Text .= "\n\n---------------------------------------\n"; $Text .= __("Information about the sender: ") . "\n"; $Text .= __("IP address: ") . $REMOTE_ADDR . "\n"; $Text .= __("Time of sending: ") . mytime() . "\n"; $Text .= __("Sent via the net2ftp application installed on this website: ") . $HTTP_REFERER . "\n"; $Text .= __("Webmaster's email: ") . $From . "\n"; $Text .= "\n\n---------------------------------------\n"; $Text .= __("Message of the sender: ") . "\n"; $Text .= $zipactions["message"] . "\n"; $Text .= "\n\n---------------------------------------\n"; $Text .= __("net2ftp is free software, released under the GNU/GPL license. For more information, go to http://www.net2ftp.com.") . "\n\n\n"; $AttmFiles = array($tempfilename); SendMail($From, $FromName, $To, $ToName, $Subject, $Text, $Html, $AttmFiles); if ($net2ftp_result["success"] == false) { @unlink($tempfilename); return false; } $net2ftp_output["ftp_zip"][] = __("The zip file has been sent to <b>%1\$s</b>.", $To) . "<br /><br />"; } // ------------------------ // Delete the temporary zipfile // ------------------------ if ($zipactions["save"] == "yes" || $zipactions["email"] == "yes") { $success4 = @unlink($tempfilename); if ($success4 == false) { $errormessage = __("Unable to delete the temporary file"); setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } registerTempfile("unregister", $tempfilename); } // Set the variable to NULL to save memory $net2ftp_globals["zipfile"] = NULL; } // end if $divelevel == 0 }
function net2ftp_module_printBody() { // -------------- // This function prints the zip screen // -------------- // ------------------------------------------------------------------------- // Global variables // ------------------------------------------------------------------------- global $net2ftp_settings, $net2ftp_globals, $net2ftp_messages, $net2ftp_result, $net2ftp_output; if (isset($_POST["list"]) == true) { $list = getSelectedEntries($_POST["list"]); } else { $list = ""; } if (isset($_POST["zipactions"]) == true) { $zipactions = $_POST["zipactions"]; } else { $zipactions = ""; } // ------------------------------------------------------------------------- // Variables for all screens // ------------------------------------------------------------------------- // Title $title = __("Zip entries"); // Form name, back and forward buttons $formname = "ZipForm"; $back_onclick = "document.forms['" . $formname . "'].state.value='browse';document.forms['" . $formname . "'].state2.value='main';document.forms['" . $formname . "'].submit();"; $forward_onclick = "document.forms['" . $formname . "'].submit();"; // ------------------------------------------------------------------------- // Variables for screen 1 // ------------------------------------------------------------------------- if ($net2ftp_globals["screen"] == 1) { // Next screen $nextscreen = 2; // Default filename of the zip file $zipfilename = get_filename_name($list["files"][1]["dirfilename"]) . ".zip"; } elseif ($net2ftp_globals["screen"] == 2) { // -------------------- // Check the input data // -------------------- // Filename if ($zipactions["save"] == "yes" && $zipactions["save"]["filename"] == "") { $errormessage = __("You did not enter a filename for the zipfile. Go back and enter a filename.") . "<br />"; setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } // Email address if ($zipactions["email"] == "yes" && checkEmailAddress($zipactions["email_to"]) == false) { $errormessage = __("The email address you have entered (%1\$s) does not seem to be valid.<br />Please enter an address in the format <b>username@domain.com</b>", $zipactions["email_to"]) . "<br />"; setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__); return false; } // -------------------- // Execute the function // -------------------- setStatus(4, 10, __("Processing the entries")); $zipactions["download"] == "no"; ftp_zip("", $net2ftp_globals["directory"], $list, $zipactions, "", 0); if ($net2ftp_result["success"] == false) { return false; } } // end elseif // ------------------------------------------------------------------------- // Print the output // ------------------------------------------------------------------------- require_once $net2ftp_globals["application_skinsdir"] . "/" . $net2ftp_globals["skin"] . "/manage.template.php"; }