function __construct() { // parent::__construct(); // // include($this->sConnBse."connectors/php/config.php"); // switch ($this->sAction) { case "bar": // image resize $iScW = intval($_POST["w"]); $iScH = intval($_POST["h"]); $iCrX = intval($_POST["cx"]); $iCrY = intval($_POST["cy"]); $iCrW = intval($_POST["cw"]); $iCrH = intval($_POST["ch"]); list($iW, $iH) = getimagesize($this->sSFile); $fScl = $iW / $iScW; $iFrX = intval($fScl * $iCrX); $iFrY = intval($fScl * $iCrY); $iFrW = intval($fScl * $iCrW); $iFrH = intval($fScl * $iCrH); $oImgN = imagecreatetruecolor($iCrW, $iCrH); $oImg = imagecreatefromjpeg($this->sSFile); imagecopyresampled($oImgN, $oImg, 0, 0, $iFrX, $iFrY, $iCrW, $iCrH, $iFrW, $iFrH); if (imagejpeg($oImgN, $this->sSFile)) { $this->aReturn['msg'] .= "imgResized"; } else { $this->aReturn['error'] .= "imgNotresized"; } $this->returnJSON($this->aReturn); break; } }
function __construct() { echo $this->clean_uri('qwer/asdf.jpg<br/>'); echo $this->clean_uri('/qwer/asdf.jpg<br/>'); echo $this->clean_uri('//////qwer/asdf.jpg<br/>'); echo 'WP_SFB_DEBUG ' . (WP_SFB_DEBUG ? 1 : 0) . '<br/>'; echo 'SFB_DEBUG ' . (SFB_DEBUG ? 1 : 0) . '<br/>'; // parent::__construct(); }
function __construct() { // parent::__construct(); // if (isset($_POST["contents"])) { $sContents = $_POST["contents"]; } //$aVldt["contents"];//$_POST["contents"]; // switch ($this->sAction) { case "new": if (file_exists($this->sSFile)) { $this->aReturn['error'] .= "File exists"; } else { $oFile = fopen($this->sSFile, "w"); fputs($oFile, stripslashes($sContents)); fclose($oFile); chmod($this->sSFile, 0644); $this->aReturn['data'] = $this->fileInfo($this->sSFile); $this->aReturn['msg'] .= "new file created ... almost that is ... "; } break; case "edit": if (file_exists($this->sSFile)) { $oFile = fopen($this->sSFile, "w"); fputs($oFile, stripslashes($sContents)); fclose($oFile); $this->aReturn['msg'] .= "File edited"; } else { $this->aReturn['error'] .= "File could not be found"; } break; case "cont": $oHnd = fopen($this->sSFile, "r"); $sCnt = preg_replace(array("/\n/", "/\r/", "/\t/"), array("\\n", "\\r", "\\t"), addslashes(fread($oHnd, max(1, filesize($this->sSFile))))); fclose($oHnd); $this->aReturn['data']['text'] = $sCnt; $this->aReturn['msg'] .= "contentsSucces"; break; } $this->returnJSON($this->aReturn); }
function __construct() { // parent::__construct(); // if ($this->sAction) { switch ($this->sAction) { case "fileList": // retreive file list $sDir = isset($_POST["folder"]) ? $_POST["folder"] : "/"; $aFiles = array(); $listing = tntbase_get_path_contents($sDir, true); foreach ($listing as $file => $prop) { $oFNfo = $this->getFileInfo(array("file" => $file, "type" => $prop)); $aFiles[] = $oFNfo; } $this->aReturn['msg'] .= "fileListing"; $this->aReturn['data'] = $aFiles; break; case "duplicate": // duplicate file $sCRegx = "/(?<=(_copy))([0-9])+(?=(\\.))/"; $sNRegx = "/(\\.)(?=[A-Za-z0-9]+\$)/"; $oMtch = preg_match($sCRegx, $this->sSFile, $aMatches); if (count($aMatches) > 0) { $sNewFile = preg_replace($sCRegx, intval($aMatches[0]) + 1, $this->sSFile); } else { $sNewFile = preg_replace($sNRegx, "_copy0.", $this->sSFile); } while (file_exists($sNewFile)) { // $$ there could be a quicker way $oMtch = preg_match($sCRegx, $sNewFile, $aMatches); $sNewFile = preg_replace($sCRegx, intval($aMatches[0]) + 1, $sNewFile); } if (copy($this->sSFile, $sNewFile)) { $oFNfo = $this->fileInfo($sNewFile); $this->aReturn['data'] = $oFNfo; $this->aReturn['msg'] .= "duplicated#" . $sNewFile; } else { $this->aReturn['error'] = "notduplicated#" . $sNewFile; } break; case "swfUpload": // swf file upload if ($this->sAction == "swfUpload") { foreach ($_GET as $k => $v) { $_POST[$k] = $v; } } case "upload": // file upload $sElName = $this->sAction == "upload" ? "fileToUpload" : "Filedata"; if (!empty($_FILES[$sElName]["error"])) { switch ($_FILES[$sElName]["error"]) { case "1": $sErr = "uploadErr1"; break; case "2": $sErr = "uploadErr2"; break; case "3": $sErr = "uploadErr3"; break; case "4": $sErr = "uploadErr4"; break; case "6": $sErr = "uploadErr6"; break; case "7": $sErr = "uploadErr7"; break; case "8": $sErr = "uploadErr8"; break; default: $sErr = "uploadErr"; } } else { if (empty($_FILES[$sElName]["tmp_name"]) || $_FILES[$sElName]["tmp_name"] == "none") { $this->aReturn['error'] = "No file was uploaded.."; } else { $sFolder = $_POST["folder"]; $this->aReturn['msg'] .= "sFolder_" . $sFolder; $sPath = $sFolder; $sDeny = $_POST["deny"]; $sAllow = $_POST["allow"]; $sResize = $_POST["resize"]; $oFile = $_FILES[$sElName]; $sFile = $oFile["name"]; $sMime = array_pop(preg_split("/\\./", $sFile)); //mime_content_type($sDir.$file); //$oFile["type"]; // // $iRpt = 1; $sFileTo = $sPath . $oFile["name"]; while (file_exists($sFileTo)) { $aFile = explode(".", $oFile["name"]); $aFile[0] .= "_" . $iRpt++; $sFile = implode(".", $aFile); $sFileTo = $sPath . $sFile; } $sFileTo = $this->sConnBse . $sFileTo; move_uploaded_file($oFile["tmp_name"], $sFileTo); $oFNfo = $this->fileInfo($sFileTo); $bAllow = $sAllow == ""; $sFileExt = array_pop(explode(".", $sFile)); if ($oFNfo) { $this->aReturn['msg'] .= $iRpt === 1 ? 'fileUploaded' : 'fileExistsrenamed'; // check if file is allowed in this session $$$$$$todo: check SFB_DENY foreach (explode("|", $sAllow) as $sAllowExt) { if ($sAllowExt == $sFileExt) { $bAllow = true; break; } } foreach (explode("|", $sDeny) as $sDenyExt) { if ($sDenyExt == $sFileExt) { $bAllow = false; break; } } } else { $bAllow = false; } if (!$bAllow) { $this->aReturn['error'] = "uploadNotallowed#" . $sFileExt; @unlink($sFileTo); } else { if ($sResize && $sResize != "null" && $sResize != "undefined" && ($sMime == "jpeg" || $sMime == "jpg")) { $aResize = explode(",", $sResize); $iToW = $aResize[0]; $iToH = $aResize[1]; list($iW, $iH) = getimagesize($sFileTo); $fXrs = $iToW / $iW; $fYrs = $iToH / $iH; if (false) { //just resize $fRsz = min($fXrs, $fYrs); if ($fRsz < 1) { $iNW = intval($iW * $fRsz); $iNH = intval($iH * $fRsz); $oImgN = imagecreatetruecolor($iNW, $iNH); $oImg = imagecreatefromjpeg($sFileTo); imagecopyresampled($oImgN, $oImg, 0, 0, 0, 0, $iNW, $iNH, $iW, $iH); imagejpeg($oImgN, $sFileTo); } } else { // crop after resize $fRsz = max($fXrs, $fYrs); //if ($fRsz<1) { if ($fXrs < 1 || $fYrs < 1) { $iNW = intval($iW * $fRsz); $iNH = intval($iH * $fRsz); $iFrX = $iNW > $iToW ? ($iNW - $iToW) / 2 : 0; $iFrY = $iNH > $iToH ? ($iNH - $iToH) / 2 : 0; $iFrW = $iNW > $iToW ? $iToW * (1 / $fRsz) : $iW; $iFrH = $iNH > $iToH ? $iToH * (1 / $fRsz) : $iH; $oImgN = imagecreatetruecolor($iToW, $iToH); $oImg = imagecreatefromjpeg($sFileTo); imagecopyresampled($oImgN, $oImg, 0, 0, $iFrX, $iFrY, $iToW, $iToH, $iFrW, $iFrH); imagejpeg($oImgN, $sFileTo); } } $oFNfo = $this->fileInfo($sFileTo); } $this->aReturn['data'] = $oFNfo; } } } break; case "delete": // file delete if (count($_POST) != 3 || !isset($_POST["folder"]) || !isset($_POST["file"])) { exit("ku ka"); } if (is_file($this->sSFile)) { if (@unlink($this->sSFile)) { $this->aReturn['msg'] .= "fileDeleted"; } else { $this->aReturn['error'] .= "fileNotdeleted"; } } else { if (@rmdir($this->sSFile)) { $this->aReturn['msg'] .= "folderDeleted"; } else { $this->aReturn['error'] .= "folderNotdeleted"; } } break; case "download": // file force download $sZeFile = $this->sConnBse . $this->sSFile; if (file_exists($sZeFile)) { ob_start(); $sType = "application/octet-stream"; header("Cache-Control: public, must-revalidate"); header("Pragma: hack"); header("Content-Type: " . $this->sSFile); header("Content-Length: " . (string) filesize($sZeFile)); header('Content-Disposition: attachment; filename="' . array_pop(explode("/", $sZeFile)) . '"'); header("Content-Transfer-Encoding: binary\n"); ob_end_clean(); readfile($sZeFile); exit; } break; case "read": // read txt file contents $sExt = strtolower(array_pop(explode('.', $this->sSFile))); // // install extensions and add to php.ini // - extension=php_zip.dll if ($sExt == "zip") { $sDta = ""; if (!function_exists("zip_open")) { $sErr .= "php_zip not installed or enabled"; } else { if ($zip = @zip_open(getcwd() . "/" . $this->sSFile)) { // while ($zip_entry = @zip_read($zip)) { $sDta .= @zip_entry_name($zip_entry) . "\\r\\n"; } // zip_entry_filesize | zip_entry_compressedsize | zip_entry_compressionmethod @zip_close($zip); $this->aReturn['data'] = array('type' => 'archive', 'text' => $sDta); } } } else { if ($sExt == "rar") { // - extension=php_rar.dll if (!function_exists("rar_open")) { $sMsg .= "php_rar not installed or enabled"; } else { if ($rar_file = @rar_open(getcwd() . "/" . $this->sSFile)) { $entries = @rar_list($rar_file); foreach ($entries as $entry) { $sDta .= $entry->getName() . "\\r\\n"; } // getName | getPackedSize | getUnpackedSize @rar_close($rar_file); $this->aReturn['data'] = array('type' => 'archive', 'text' => $sDta); } } } else { if ($sExt == "pdf") { include 'class.pdf2text.php'; $oPdf = new PDF2Text(); $oPdf->setFilename($this->sSFile); $oPdf->decodePDF(); $sCnt = str_replace(array("\n", "\r", "\t"), array("\\n", "\\n", ""), substr($oPdf->output(), 0, PREVIEW_BYTES)); $this->aReturn['data'] = array('type' => 'ascii', 'text' => $sCnt); } else { if ($sExt == "doc") { ////////////////////////////// // does not seem to be possible ////////////////////////////// } else { $oHnd = fopen($this->sSFile, "r"); $sCnt = preg_replace(array("/\n/", "/\r/", "/\t/"), array("\\n", "\\r", "\\t"), addslashes(fread($oHnd, 600))); fclose($oHnd); $this->aReturn['data'] = array('type' => 'ascii', 'text' => $sCnt); } } } } $this->aReturn['msg'] .= count($this->aReturn['data']) ? 'contentsSucces' : 'contentsFail'; break; case "rename": // rename file if (isset($_POST["file"]) && isset($_POST["nfile"])) { $sFile = $_POST["file"]; $sNFile = $_POST["nfile"]; $sFileExt = array_pop(preg_split("/\\./", $sFile)); $sNFileExt = array_pop(preg_split("/\\./", $sNFile)); $sNSFile = str_replace($sFile, $sNFile, $this->sSFile); if (@filetype($this->sSFile) == "file" && $sFileExt != $sNFileExt) { $this->aReturn['error'] .= "filenameNoext"; // } else if (!preg_match("/^\w+(\.\w+)*$/",$sNFile)) { } else { if (!preg_match('=^[^/?*;:{}\\\\]+\\.[^/?*;:{}\\\\]+$=', $sNFile)) { $this->aReturn['error'] .= "filenamInvalid"; } else { if ($sFile == $sNFile) { $this->aReturn['msg'] .= "filenameNochange"; } else { if ($sNFile == "") { $this->aReturn['error'] .= "filenameNothing"; } else { if (file_exists($sNSFile)) { $this->aReturn['error'] .= "filenameExists"; } else { if (@rename($this->sSFile, $sNSFile)) { $this->aReturn['msg'] .= "filenameSucces"; } else { $this->aReturn['error'] .= "filenameFailed"; } } } } } } } break; case "addFolder": // add folder if (isset($_POST["folder"])) { $sFolderName = isset($_POST["foldername"]) ? $_POST["foldername"] : "new folder"; $iRpt = 1; $sFolder = $this->sConnBse . $_POST["folder"] . $sFolderName; while (file_exists($sFolder)) { $sFolder = $this->sConnBse . $_POST["folder"] . $sFolderName . $iRpt++; } if (mkdir($sFolder)) { $this->aReturn['msg'] .= "folderCreated"; $oFNfo = $this->fileInfo($sFolder); if ($oFNfo) { $this->aReturn['data'] = $oFNfo; } else { $this->aReturn['error'] .= "folderFailed"; } } else { $this->aReturn['error'] .= "folderFailed"; } } break; case "moveFiles": // move files if (isset($_POST["file"]) && isset($_POST["folder"]) && isset($_POST["nfolder"])) { // $sFolder = $_POST["folder"]; $sNFolder = $_POST["nfolder"]; $aFiles = explode(",", $_POST["file"]); $aMoved = array(); $aNotMoved = array(); for ($i = 0; $i < count($this->aFiles); $i++) { $sFile = $aFiles[$i]; $this->sSFile = $this->aFiles[$i]; $sNSFile = str_replace($sFile, $sNFolder . "/" . $sFile, $this->sSFile); if (file_exists($sNSFile)) { $this->aReturn['error'] .= "filemoveExists[" . $this->sSFile . " " . $sNSFile . "] "; $aNotMoved[] = $sFile; } else { if (@rename($this->sSFile, $sNSFile)) { $this->aReturn['msg'] .= "filemoveSucces"; $aMoved[] = $sFile; } else { $this->aReturn['error'] .= "filemoveFailed"; $aNotMoved[] = $sFile; } } } $this->aReturn['data'] = array('moved' => $aMoved, 'notmoved' => $aNotMoved, 'newfolder' => $sNFolder); } break; } $this->returnJSON($this->aReturn); } }
function __construct() { // // require_once($this->sConnBse."../../../wp-config.php"); // require_once($this->sConnBse."../../../wp-admin/includes/image.php"); // parent::__construct(); // global $wpdb, $json; // $current_site; // $sSFBpath = get_option('siteurl') . '/wp-content/plugins/sfbrowser/'; // // switch ($this->sAction) { case "inDB": // inDB // $aDB = array(); $result = $wpdb->get_results("SELECT ID,guid FROM " . $wpdb->posts . " where post_type='attachment'"); foreach ($result as $rs) { $aDB[$rs->ID] = $rs->guid; } // $sFolder = $_POST["folder"]; $sFiles = stripslashes($_POST['files']); $aFiles = (array) json_decode($sFiles); // // dump($aDB); // TRACE ### $aFiles // dump($aFiles); // TRACE ### $aFiles $aData = array(); foreach ($aFiles as $key => $filename) { $sRelFile = $this->clean_uri('wp-admin/' . SFB_PATH . $sFolder . $filename); $sFile = $this->clean_uri($sSFBpath . $sFolder . $filename); // echo $sRelFile."\n"; // echo $sFile."\n"; $RID = array_search($sRelFile, $aDB); // relative file $AID = array_search($sFile, $aDB); // absolute file if ($AID !== false || $RID !== false) { $ID = $AID !== false ? $AID : $RID; $aData[$filename] = $ID; // $aMeta = get_post_meta($ID, '_wp_attachment_metadata'); if (isset($aMeta[0]['sizes'])) { $aSizes = $aMeta[0]['sizes']; foreach ($aSizes as $size => $data) { if (array_search($data['file'], $aFiles) !== false) { $aData[$data['file']] = $ID; } } } } } $this->aReturn['data'] = $aData; break; case "remDB": // remDB $sID = $_POST["id"]; // // first find all linked files to return $aFiles = array(array_pop(explode('/', get_attached_file($sID)))); // $aMeta = wp_get_attachment_metadata($sID); if (isset($aMeta['sizes'])) { foreach ($aMeta['sizes'] as $aSize) { $aFiles[] = $aSize['file']; } } // then delete the references from the two tables $sSql = "DELETE a, b FROM " . $wpdb->posts . " AS a, " . $wpdb->postmeta . " AS b WHERE a.ID=" . $sID . " AND b.post_id=" . $sID; if ($wpdb->query($sSql) === false) { $this->aReturn['error'] = "There was an error deleting the database references."; } $this->aReturn['data'] = $aFiles; break; case "addDB": // addDB // do as in media.php::media_handle_upload $aData = array(); $sFolder = $_POST['folder']; $sFile = $_POST['file']; $sTitle = array_shift(explode('.', $sFile)); $aFileType = wp_check_filetype($this->sSFile); //$sStoreFile = clean_uri('wp-admin/'.SFB_PATH.$sFolder.$sFile); $sStoreFile = $this->clean_uri((get_option('sfbrowser_relativePath') == 'on' ? '' : get_option('siteurl')) . '/wp-admin/' . SFB_PATH . $sFolder . $sFile); $sContent = ''; // // media.php ln 209 :: // use image exif/iptc data for title and caption defaults if possible if ($image_meta = wp_read_image_metadata($this->sSFile)) { if (trim($image_meta['title']) && !is_numeric(sanitize_title($image_meta['title']))) { $sTitle = $image_meta['title']; } if (trim($image_meta['caption'])) { $sContent = $image_meta['caption']; } } $attachment = array('post_author' => $user_ID, 'post_title' => $sTitle, 'post_status' => 'inherit', 'post_name' => strToLower($sTitle), 'guid' => $sStoreFile, 'post_type' => 'attachment', 'post_mime_type' => $aFileType['type'], 'post_content' => $sContent); // media.php ln 226 :: // Save the data $id = wp_insert_attachment($attachment, $sStoreFile, 0); $aData['postid'] = $id; if (!is_wp_error($id)) { wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $this->sSFile)); $aMeta = wp_get_attachment_metadata($id); $aFiles = array(); if (isset($aMeta['sizes'])) { $aBase = explode('/', $this->sSFile); array_pop($aBase); $sBase = implode('/', $aBase); foreach ($aMeta['sizes'] as $aSize) { $aFiles[] = $this->fileInfo($sBase . '/' . $aSize['file']); } } $aData['files'] = $aFiles; } else { $this->aReturn['error'] = "There was an error adding the file to the database."; } $this->aReturn['data'] = $aData; break; } $this->returnJSON($this->aReturn); }