INDEX.PHP
Código PHP :
<?php
// VARIABLES
//NAME //DESCRIPTION
$basedir = "images/"; //The directory for storing files.
$thisDir = "p"; //The directory that this file is stored in. No slashes.
$maxFileSize = 10000000; //The maximum size in bytes that an uploaded file can be.
$ftypes = array("gif","jpg","png","bmp","tiff","tif","jpeg");
//^ Allowed filetypes.
//YOU DO NOT NEED TO EDIT ANYTHING BEYOND THIS POINT
if (!$_REQUEST["fd"]) $fd = $basedir;
else $fd = $_REQUEST["fd"];
$ud = $fd; //Upload Directory. This should always be the same as $fd.
function isDirOkay($dir, $basedir, $thisDir) { //Kind of hackish.
if (substr($dir,0,1)=="/" || substr_count($dir,"../") > substr_count($basedir,"../") || $dir==$basedir.$thisDir)
die(messageBox("ERROR: Forbidden directory.", "index.php?fd=".$fd, TRUE));
}
isDirOkay($fd, $basedir, $thisDir);
function messageBox($msgtxt, $redir, $errbox=FALSE) { //Message Box
if ($errbox==TRUE) $boxtype = "errorbox";
else $boxtype = "messagebox";
echo("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<meta http-equiv=\"refresh\" content=\"10;$redir\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />
<title>$msgtxt</title>
</head>
<body>
<div class=\"$boxtype\">
<p>$msgtxt</p>
<p><a href=\"$redir\" class=\"actn\">Okay.</a></p>
</div>
</body>
</html>");
}
function getDir($dir) { //Get contents of directory. Now supports PHP 4 and 5.
if (version_compare(PHP_VERSION, "5.0.0", ">=")) return scandir($dir);
else {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
sort($files);
return $files;
}
}
function updir($curdir) {
$dir = explode("/", $curdir);
unset($dir[count($dir)-2]);
return "index.php?fd=".implode("/",$dir);
}
/** By stefano at takys dot it (found on www.php.net/rmdir)
* rm() -- Very Vigorously erase files and directories. Also hidden files !!!!
*
* @param $dir string
* be carefull to:
* if($obj=='.' || $obj=='..') continue;
* if not it will erase all the server...it happened to me ;)
* the function is permission dependent.
*/
function rm($dir) {
if(!$dh = @opendir($dir)) return;
while (($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if (!@unlink($dir.'/'.$obj)) rm($dir.'/'.$obj);
}
@rmdir($dir);
}
if (!$_REQUEST["a"]) { //Index Page
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>The Picturebox</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
<!--
function confDelete(filename) {
var primaryOK = confirm("Are you sure you want to delete "+filename+"?");
if (primaryOK==true) {
var secondaryOK = confirm("Are you REALLY sure?");
if (secondaryOK==true) { window.location="index.php?a=del&fd=<?php echo($fd); ?>&filename="+filename; }
else { alert("Phew... Saved it. No action was taken."); }
}
else { alert("ABORT! ABORT! The file was not deleted."); }
}
function confDeleteDir(dirname) {
var primaryOK = confirm("Are you sure you want to delete the directory "+dirname+" and ALL of its contents?");
if (primaryOK==true) {
var secondaryOK = confirm("Are you REALLY sure?");
if (secondaryOK==true) { window.location="index.php?a=dld&fd=<?php echo($fd); ?>&dirname="+dirname; }
else { alert("Phew... Saved it. No action was taken."); }
}
else { alert("ABORT! ABORT! The directory was not deleted."); }
}
-->
</script>
</head>
<body>
<div class="fldiv"> <p class="dtitle">Files</p>
<table>
<?php
$curdir = $fd;
$curdir = ereg_replace(addcslashes($basedir, "."),"Home » ",$curdir);
$curdir = ereg_replace("/"," » ",$curdir);
echo "<p class=\"curdir\">Current Directory: $curdir";
if ($fd!=$basedir) echo " <a class=\"actn\" href=\"".updir($fd)."\">Up</a>";
echo "</p>";
clearstatcache();
$flist = getDir($fd);
$nsofar = 0;
echo "<tr>";
for ($i=2; $i<count($flist); $i++) {
$fnf = explode(".", $flist[$i]);
$fext = strtolower($fnf[count($fnf)-1]);
if ((in_array($fext, $ftypes) || is_dir($fd.$flist[$i])) && $flist[$i]!=$thisDir) {
$f2 = "";
if ($nsofar==5) {
echo "</tr><tr>";
$nsofar = 0;
}
$nsofar++;
if ($i%2==0) $f2 = "2";
/*dir*/ if (is_dir($fd.$flist[$i])) echo "<td class=\"pic".$f2."\"><a href=\"index.php?fd=".$fd.$flist[$i]."/\"><img border=\"0\" src=\"f.png\" width=\"128\" height=\"128\" alt=\"".$flist[$i]."\"/></a><br /><a class=\"pname\" href=\"".$fd.$flist[$i]."\">".$flist[$i]."</a> <a class=\"actn\" href=\"#\" onClick=\"confDeleteDir('".$flist[$i]."')\">Delete</a></td>";
/*pic*/ else {
$imgprop = getimagesize($fd.$flist[$i]);
$width = $imgprop[0];
$height = $imgprop[1];
if ($width<=128 && height<=128) {
$picWidth = $width;
$picHeight = $height;
}
elseif ($width>$height) {
$picWidth = 128;
$picHeight = 128 * $height / $width;
}
else {
$picHeight = 128;
$picWidth = 128 * $width / $height;
}
echo "<td class=\"pic".$f2."\"><a href=\"".$fd.$flist[$i]."\"><img border=\"0\" src=\"".$fd.$flist[$i]."\" width=\"".round($picWidth,0)."\" height=\"".round($picHeight, 0)."\" alt=\"".$flist[$i]."\"/></a><br /><a class=\"pname\" href=\"".$fd.$flist[$i]."\">".$flist[$i]."</a> <a class=\"actn\" href=\"#\" onClick=\"confDelete('".$flist[$i]."')\">Delete</a></td>";
}
}
}
?>
</table>
</div>
<div class="fnc"> <p class="dtitle">Upload File</p>
<div class="fnctn" id="uploadfile" style="margin-bottom:30px">
<form action="index.php" method="post" name="upl" enctype="multipart/form-data">
<input type="hidden" name="a" value="upl" />
<input type="hidden" name="fd" value="<?php echo($fd) ?>" />
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($maxFileSize); ?>" />
Upload file <input type="file" name="upFile" />
<input type="submit" name="go" value="Go >" />
</form>
</div>
<p class="dtitle">New Directory</p>
<div class="fnctn" id="mkdir">
<form action="index.php" method="post" name="mkd">
<input type="hidden" name="a" value="mkd" />
<input type="hidden" name="fd" value="<?php echo($fd) ?>" />
Directory Name: <input type="text" name="dirname" value="" />
<input type="submit" name="go" value="Go >" />
</form>
</div>
</div>
</body>
</html>
<?php }
elseif ($_REQUEST["a"] == "upl") { //Upload File
$ufname = stripslashes(basename($_FILES['upFile']['name']));
$fnf = explode(".", $ufname);
$fext = strtolower($fnf[count($fnf)-1]);
if (in_array($fext, $ftypes)) {
$uf = $ud.$ufname;
if (move_uploaded_file(stripslashes($_FILES['upFile']['tmp_name']), $uf)!=1) die(messageBox("ERROR: File upload failed.", "index.php?fd=".$fd, TRUE));
chmod($uf, 0755);
messageBox("The file ".$ufname." was uploaded.", "index.php?fd=".$fd);
}
else die(messageBox("ERROR: That file type is not permitted.", "index.php?fd=".$fd, TRUE));
}
elseif ($_REQUEST["a"] == "mkd") { //Make Directory
if (ereg('\/', $_REQUEST["dirname"])==1) die(messageBox("ERROR: Working out of directory is forbidden. Do not add any trailing slashes at the end of the directory name.", "index.php?fd=".$fd, TRUE));
if (file_exists($fd.$_REQUEST["dirname"])) die(messageBox("ERROR: The file ".$_REQUEST["dirname"]." already exists!", "index.php?fd=".$fd, TRUE));
///////////////////////////
if (mkdir($fd.$_REQUEST["dirname"], 0755)==1) messageBox("The directory ".$_REQUEST["dirname"]." was created.", "index.php?fd=".$fd.$_REQUEST["dirname"]."/");
else messageBox("ERROR: Something went wrong when trying to create the directory.", "index.php?fd=".$fd, TRUE);
}
elseif ($_REQUEST["a"] == "del") { //Delete File
if (ereg('\/', $_REQUEST["filename"])==1) die(messageBox("ERROR: Working out of directory is forbidden.", "index.php?fd=".$fd, TRUE));
if (file_exists($fd.$_REQUEST["filename"])!=1 || $fd==$thisDir) die(messageBox("ERROR: The file ".$_REQUEST["filename"]." does not exist!", "index.php?fd=".$fd, TRUE));
///////////////////////////
if (unlink($fd.$_REQUEST["filename"])==1) messageBox("The file ".$_REQUEST["filename"]." was deleted.", "index.php?fd=".$fd);
else messageBox("ERROR: Something went wrong when trying to delete that file.", "index.php?fd=".$fd, TRUE);
}
elseif ($_REQUEST["a"] == "dld") { //Delete Directory
if (ereg('\/', $_REQUEST["dirname"])==1) die(messageBox("ERROR: Working out of directory is forbidden.", "index.php?fd=".$fd, TRUE));
if (file_exists($fd.$_REQUEST["dirname"])!=1 || $_REQUEST["dirname"]==$thisDir) die(messageBox("ERROR: The directory ".$_REQUEST["dirname"]." does not exist!", "index.php?fd=".$fd, TRUE));
///////////////////////////
rm($fd.$_REQUEST["dirname"]);
messageBox("The directory ".$_REQUEST["dirname"]." was deleted.", "index.php?fd=".$fd);
}
?>desde ya muchas gracias y espero me ayuden..
