}
}
if (isset($_SESSION['server'])) {
$server=$_SESSION['server'];
}
if (isset($_SESSION['user'])) {
$user=$_SESSION['user'];
}
if (isset($_SESSION['password'])) {
$password=$_SESSION['password'];
}
if (isset($_SESSION['language'])) {
$language=$_SESSION['language'];
}
if (isset($_SESSION['port'])) {
$port=$_SESSION['port'];
}
if (isset($_SESSION['passive'])) {
$passive=$_SESSION['passive'];
} else {
$passive = false;
}
// If language is not yet set, check the default language or try to get the language from your browser.
$validLanguage = false;
if(!isset($language) or $language==""){
if ($defaultLanguage !="") {
$language = $defaultLanguage ;
if(file_exists("include/language/" . $languages[$language] . ".lang.php")) {
$validLanguage = true;
}
} else {
$browser_lang = getenv("http_accept_language");
$tmplang = $languages[$browser_lang];
if(file_exists("include/language/" . $tmplang . ".lang.php")) {
$language = $tmplang;
} else {
$language = "english";
}
$validLanguage=true;
}
} else {
//Check if the language is a valid language
foreach($languages as $langid=>$thisLanguage) {
if($langid==$language) {
$validLanguage=true;
}
}
}
//Include Language file
if($validLanguage) {
include("include/language/" . $languages[$language] . ".lang.php"); // Selected language
} else {
die("Invalid language entered. Exiting script");
}
if (isset($server) && $server!="")
{
$ftp = new ftp($server, $port, $user, $password, $passive);
if (isset($_SESSION["ftpmode"])) {
$ftp->setMode($_SESSION["ftpmode"]);
}
$ftp->setCurrentDir($currentDir);
// set some default values as defined in config.inc.php
$ftp->setResumeDownload($resumeDownload);
$ftp->setDownloadDir($downloadDir);
if ($ftp->loggedOn)
{
$msg = $ftp->getCurrentDirectoryShort();
// what to do now ???
if(isset($actionType))
{
switch ($actionType)
{
case "changemode":
$_SESSION["ftpmode"] = $ftpMode;
$ftp->setMode($_SESSION["ftpmode"]);
break;
case "chmod": // Change permissions
if($ftp->chmod($permissions, $file)){
$msg = $lblFilePermissionChanged;
} else {
$msg = $lblCouldNotChangePermissions;
}
break;
case "cd": // Change directory
$ftp->cd($file);
$msg = /*$lblndexOf .*/ $ftp->getCurrentDirectoryShort();
break;
case "get": // Download file
$ftp->download($file) or DIE($lblErrorDownloadingFile);
break;
case "put": // Upload file
$fileObject = $_FILES['file'];
if($fileObject['size'] <= $maxFileSize) {
if (isset($_POST["putunzip"])) {
$file = $fileObject["name"];
$tmpfile = $fileObject["tmp_name"];
copy($fileObject["tmp_name"], $ftp->downloadDir . "/" . $file);
// 1. check if file is unzippable
// 2. unzip file
// 3. clean up
set_time_limit(30); //for big archives
$dir = $ftp->downloadDir . $ftp->userDir . "/";
// 2. mkdir
mkdir($dir);
chdir($dir);
// 3. unzip
$cmd = false;
foreach ($uncompress as $key=>$value) {
if (!$cmd and preg_match("/\.$key$/", $file)) {
$dir = preg_replace("/\.$key$/", "", $file);
$cmd = $value;
}
}
// 4. recursive upload
if ($cmd) {
mkdir($dir);
chdir($dir);
`$cmd ../../$file`;
chdir("..");
$ftp->putRecursive($dir);
} else {
$msg = "bestandstype wordt niet ondersteund.";
$ftp->upload($fileObject);
}
} else {
if(!$ftp->upload($fileObject)) {
$msg = $lblFileCouldNotBeUploaded;
}
}
} else {
$msg = "" . $lblFileSizeTooBig . " (max. " . $maxFileSize . " bytes)
";
}
break;
case "deldir"; // Delete directory
$ftp->deleteRecursive($file);
break;
case "delfile"; // Delete file
$ftp->deleteFile($file);
break;
case "rename"; // Rename file
if($ftp->rename($file, $file2)) {
$msg = $file . " " . $lblRenamedTo . " " . $file2;
} else {
$msg = $lblCouldNotRename . " " . $file . " " . $lblTo . " " . $file2;
}
break;
case "createdir": // Create a new directory
if($ftp->makeDir($file)) {
$msg = $file . " " . $lblCreated;
} else {
$msg = $lblCouldNotCreate . " " . $file;
}
break;
case "edit":
//First download the file to the server
$ftp->get($file);
//Now open the content of the file in an edit window
// ToDo: separate file, html editor.
?>
///BEGIN EDITOR///?>
echo <<
XML;
?>
phpWebFTP
=$currentVersion;?>
By Edwin van Wijk
if (
preg_match("/\.htm$/", $file)
||
preg_match("/\.html$/", $file)
)
{
?>
}
?>
///END EDITOR///?>
unlink($ftp->downloadDir . $file);
exit;
break;
case "saveFile":
//Write content of fileContent to tempFile
$tempFile = "tmpFile.txt";
$fp = fopen($ftp->downloadDir . $tempFile, "w+t");
if ($bytes=!fwrite($fp, stripslashes($fileContent))) {
$msg = $lblFileCouldNotBeUploaded;
}
fclose($fp);
//Upload the file to the server
if(!$ftp->put($ftp->currentDir . "/" . filePart(StripSlashes($file)),$ftp->downloadDir . $tempFile)) $msg = $lblFileCouldNotBeUploaded;
//Delete temporary file
unlink($ftp->downloadDir . $tempFile);
break;
case "getzip":
set_time_limit(30); //for big archives
$zipfile = $file . ".zip";
// a directory for every user, just in case...
$dir = $ftp->downloadDir . $ftp->userDir . "/";
header("Content-disposition: attachment; filename=\"$zipfile\"");
header("Content-type: application/octetstream");
header("Pragma: ");
header("Cache-Control: cache");
header("Expires: 0");
$zipfile = $ftp->downloadDir . $zipfile;
//Create temporary directory
mkdir($dir);
//Get entire directory and store to temporary directory
$ftp->getRecursive($ftp->currentDir, $file);
//zip the directory
$zip = new ss_zip('',6);
$zip->zipDirTree($dir, $dir);
$zip->save($zipfile);
//send zipfile to the browser
$filearray = explode("/",$zipfile);
$file = $filearray[sizeof($filearray)-1];
$data = readfile($zipfile);
$i=0;
while ($data[$i] != "")
{
echo $data[$i];
$i++;
}
//Delete zip file
unlink($zipfile);
//Delete downloaded files from user specific directory
deleteRecursive($dir);
exit;
break;
case "unzip": // BK20061114
set_time_limit(30); //for big archives
$dir = $ftp->downloadDir . $ftp->userDir . "/";
// 1. download
$ftp->get($file);
// 2. mkdir
mkdir($dir);
chdir($dir);
// 3. unzip
$cmd = false;
foreach ($uncompress as $key=>$value) {
if (!$cmd and preg_match("/\.$key$/", $file)) {
$dir = preg_replace("/\.$key$/", "", $file);
$cmd = $value;
}
}
// 4. recursive upload
if ($cmd) {
mkdir($dir);
chdir($dir);
`$cmd ../../$file`;
chdir("..");
$ftp->putRecursive($dir);
}
}
}
?>
///BEGIN FILE MANAGER///?>
echo <<
XML;
?>
phpWebFTP
=$currentVersion;?>
By Edwin van Wijk
phpWebFTP
=$lblVersion;?>
=$currentVersion;?>
|
$newMode=($ftp->mode==1)?0:1;
if($ftp->loggedOn)
{
?>
}
else
{
?>
}
?>
|
=$lblName;?> |
=$lblSize;?>
|
=$lblFileType;?>
|
=$lblDate;?> |
=$lblPermissions;?> |
=$lblOwner;?> |
=$lblGroup;?> |
$list = $ftp->ftpRawList();
if (is_array($list))
{
// Directories
$counter=0;
foreach($list as $myDir)
{
if ($myDir["is_dir"]==1)
{
$fileAction = "cd";
$fileName = $myDir["name"];
$fileSize="";
$delAction = "deldir";
$fileType['description'] = 'File Folder';
$fileType['imgfilename'] = 'folder.gif';
}
if ($myDir["is_link"]==1)
{
$fileAction = "cd";
$fileName = $myDir["target"];
$fileSize="";
$delAction = "delfile";
$fileType['description'] = 'Symbolic Link';
$fileType['imgfilename'] = 'link.gif';
}
if ($myDir["is_link"]!=1 && $myDir["is_dir"]!=1)
{
$fileType = fileDescription($myDir["name"]);
$fileAction = "get";
$fileName = $myDir["name"];
$image = "file.gif";
if($myDir["size"]<1024) {
$fileSize= $myDir["size"] . " bytes ";
$fileSize=number_format($myDir["size"], 0, ',', '.') . " bytes";
} else {
if($myDir["size"]<1073741824) {
$fileSize=number_format($myDir["size"]/1024, 0, ',', '.') . " KB";
} else {
$fileSize=number_format($myDir["size"]/1048576, 0, ',', '.') . " MB";
}
}
$delAction = "delfile";
}
$escapedFileName = addslashes($fileName);
?>
','=$myDir["perms"]?>','=$delAction;?>')" onDblClick="submitForm('=$fileAction;?>','=$escapedFileName?>')"> |
','=$myDir["perms"];?>','=$delAction;?>')" onDblClick="submitForm('=$fileAction;?>','=$escapedFileName?>')">
=$fileName;?>
|
=$fileSize;?> |
=$fileType['description'];?> |
=$myDir["date"];?> |
=$myDir["perms"];?> |
=$myDir["user"];?> |
=$myDir["group"];?> |
$counter++;
}
} else {
?>
=$lblDirectoryEmpty;?>
... |
}
?>
|
|
///END FILE MANAGER///?>
}
else
{
if(!isset($msg))
{
$msg = "$lblCouldNotConnectToServer $server:$port $lblWithUser $user$lblTryAgain";
unset($_SESSION['server']);
unset($_SESSION['user']);
unset($_SESSION['password']);
unset($_SESSION['port']);
session_destroy();
}
print $msg;
}
}
else // Still need to logon...
{
if ($disableLoginScreen == false)
{
?>
///BEGIN LOGIN SCREEN///?>
echo <<
XML;
?>
phpWebFTP
=$currentVersion;?>
By Edwin van Wijk
phpWebFTP
=$lblVersion;?>
=$currentVersion;?>
|
///END LOGIN SCREEN///?>
}
else
{
?>
Login disabled
Manual login functionality is disabled by your provider. Close window
}
}
?>