This script will allow you to manage directories and files.
The only thing you need to do is create a directory where you put the files. You have to add the name of that directory in the file, so just change $file_dir="files"; into the directory you made.
Just unzip the file I posted here. These files don't have to be in the $DOCUMENT_ROOT/$file_dir
notice that if the file_dir is $DOCUMENT_ROOT/downloads/files you wil have to edit the $file_dir into "/downloads/files"
You can create directories in the file_dir and in the subdirectories when you are browsing them, you can also delete the directories, but as you can see when you do so the content of the directory wil be lost too.
You can upload, see and delete files in the same screen.
I haven't made a check on the delete button so if you push it it wil be deleted right away.
By : Orcrist
<HTML>
<HEAD>
<TITLE>File/Backup management screen</TITLE>
<link href='default.css' rel='stylesheet' type='text/css'>
</HEAD>
<BODY>
<?php
$file_dir="files";
function place($path)
{
echo "
<span class='title'>File/backup upload</span><img src=\"spacer.gif\" width='100%' height='10'><br>
<span class='text'>This is an area where you can upload and manage your files for school.<br>To upload the file click browse for the image in your computer and press upload.</span><img src=\"spacer.gif\" width='100%' height='7'><br>
<table border='0' bgcolor='#000000' cellpadding='1' cellspacing='1'>
<tr>
<td align='center'>
<table border='0' cellpadding='0' cellspacing='0' bgcolor='#FFFFFF'>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='15'></td>
</tr>
<tr>
<td align='center'>
<FORM ENCTYPE='multipart/form-data' ACTION='' METHOD='POST'>
File: <INPUT TYPE='FILE' NAME='uploadfile' maxlength='255'>
<INPUT TYPE='hidden' name='action' VALUE='5'>
<INPUT TYPE='hidden' name='path' VALUE='$path'>
</td>
</tr>
<tr>
<td align='center'>
<INPUT TYPE='submit' VALUE='Upload'>
</td></FORM>
</tr>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='15'></td>
</tr>
</table>
</td>
</tr>
</table>
";
}
function place_bottom($path)
{
echo "
<span class='title'>Directory Create</span><img src=\"spacer.gif\" width='100%' height='10'><br>
<span class='text'>This is an area where you can create a directory.<br>To create one you type the name in the field and push create.</span>
<img src=\"spacer.gif\" width='100%' height='7'><br>
<table border='0' bgcolor='#000000' cellpadding='1' cellspacing='1'>
<tr>
<td align='center'>
<table border='0' cellpadding='0' cellspacing='0' bgcolor='#FFFFFF'>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='15'></td>
</tr>
<tr>
<td align='center'>
<FORM ACTION='' METHOD='POST'>
Create directory: <INPUT TYPE='text' NAME='create_dir'>
<INPUT TYPE='hidden' name='action' VALUE='1'>
<INPUT TYPE='hidden' name='path' VALUE='$path'>
</td>
</tr>
<tr>
<td align='center'>
<INPUT TYPE='submit' VALUE='Create'>
</td></FORM>
</tr>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='15'></td>
</tr>
</table>
</td>
</tr>
</table>
";
} // einde place_bottom()
function pics_onsite($path,$DOCUMENT_ROOT,$subdir)
{
global $file_dir;
if (!chdir($path))
{
echo "Error: directory: $path not found....";
}
$handle=opendir('.');
$count=0;
$list= "<table border='0' cellspacing='1' cellpadding='1' bgcolor='#000000'>
<tr><td valign='top' bgcolor='#FFFFFF'><img src=\"spacer.gif\" width='100%' height='7'><br>";
$directory= "<table border='0' cellspacing='1' cellpadding='1' bgcolor='#000000'>
<tr><td valign='top' bgcolor='#FFFFFF' align='center'><img src=\"spacer.gif\" width='100%' height='7'><br>";
if (ereg_replace("$DOCUMENT_ROOT/$file_dir","",$path)!="")
{
$subdir=1;
}
else
{
$subdir=0;
}
while (($file = readdir($handle))!==false)
{
if (($file != ".") && ($file != ".."))
{
if (is_dir($file))
{
$directory.="| <a class='text' href=?action=3&change_path=$path/$file>$file</a> |";
}
if (is_file($file))
{
$file_del=ereg_replace(" ","_",$file);
$list.=" <a class='text' href=?action=4&file=$file_del&path=$path&subdir=$subdir>[delete]</a> <a class='text' href='" . ereg_replace("$DOCUMENT_ROOT","",$path) ."/$file' target='_blank'>$file</a> <br>";
$count++;
if ($count==10){$list.="<img src=\"spacer.gif\" width='100%' height='7'></td><td valign='top' bgcolor='#FFFFFF'><img src=\"spacer.gif\" width='100%' height='7'><br>"; $count=0;}
$wel=1;
}
}
}
if (!$wel){$list.="<center><img src=\"spacer.gif\" width='10' height='7'><span class='textbold'>No files in this directory try another</span><img src=\"spacer.gif\" width='10' height='7'></center>";}
$list.="<img src=\"spacer.gif\" width='100%' height='7'></td></tr></table>";
if ($subdir){$directory.="<a class='text' href=?action=2>| Back |</a>";}
$directory.="<img src=\"spacer.gif\" width='100%' height='7'></td></tr></table>";
echo "
<center>
<span class='textbold'>Carefull with the delete function, it wil delete it all (no control).</span>
<table border=0>
<tr>";
if (ereg_replace("$DOCUMENT_ROOT/$file_dir","",$path)!="")
{
echo "<td align='center' valign='top' class='text'>
You are in directory: <span class='title'>" . ereg_replace("$DOCUMENT_ROOT/$file_dir","",$path) ."</span>
<a class='text' href=?action=6&del_path=$path>[delete_DIR]</a></td>";
}
else
{
echo "<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='10'></td>";
}
echo "
</tr>
<tr>
<td align='center' class='text'>Below you will view list of existing files.</td>
</tr>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='7'></td>
</tr><tr>
<td align='center' valign='top'>$directory</td>
</tr>
<tr>
<td align='center' valign='top'><img src=\"spacer.gif\" width='100%' height='7'></td>
</tr>
<tr>
<td align='center' valign='top'>$list</td>
</tr>
</table>
</center>
";
} // einde pics_onsite()
function delete($file)
{
global $message,$path;
if (file_exists($file))
{
chmod($file,0777);
if (is_dir($file))
{
$handle = opendir($file);
while ($filename = readdir($handle))
{
if ($filename != "." && $filename != "..")
{
delete ($file."/".$filename);
}
}
closedir($handle);
if (rmdir($file)){$message.="Directory: " . ereg_replace("$path","",$file) .", deleted<br>";}
}
else
{
if (unlink($file)){$message.="File: " . ereg_replace("$path","",$file) .", deleted<br>";}
}
}
} // einde delete($file)
if (!$path)
{
$path="$DOCUMENT_ROOT/$file_dir";
}
switch ($action)
{
case 1:
$path="$path/$create_dir";
mkdir("$path", 0777);
break;
case 2:
$subdir=0;
break;
case 3:
$path="$change_path";
$subdir=1;
break;
case 4:
$message="<br><br><center><table border='0' cellspacing='1' cellpadding='1' bgcolor='#000000'>
<tr><td valign='top' bgcolor='#FFFFFF' class='text'><img src=\"spacer.gif\" width='100%' height='7'><br>";
IF (@is_file("$path/$file"))
{
@unlink ("$path/$file");
}
ELSE
{
$file=ereg_replace("_"," ",$file);
IF (is_file("$path/$file"))
{
unlink ("$path/$file") or die ("error: $path/$file");
}
}
break;
case 5:
$doel="$path/$uploadfile_name";
IF (!copy ($uploadfile,$doel))
{
echo "Error copying: ($uploadfile) to: ($doel)";
}
break;
case 6:
$message="<br><br><center><table border='0' cellspacing='1' cellpadding='1' bgcolor='#000000'>
<tr><td valign='top' bgcolor='#FFFFFF' class='text'><img src=\"spacer.gif\" width='100%' height='7'><br>";
delete($del_path);
$message.="<img src=\"spacer.gif\" width='100%' height='7'></td></tr></table></center>";
break;
}
echo "
<center>
<table border='0' bgcolor='#000000' cellpadding='1' cellspacing='1'>
<tr>
<td align='center'>"; place($path); echo "<br></td><td align='center'>"; place_bottom($path); echo "<br></td>
</tr>
<tr>
<td align='center' colspan='2'>"; pics_onsite($path,$DOCUMENT_ROOT,$subdir); echo "</td>
</tr>
</table>
$message
</center>
";
?>
</BODY>
</HTML>
Click to
Download File| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More File Manipulation Code Articles
More By Codewalkers
developerWorks - FREE Tools! |
CakePHP is a stable production-ready, rapid-development aid for building Web sites in PHP. This "Cook up Web sites fast with CakePHP" series shows you how to build an online product catalog using CakePHP. FREE! Go There Now!
|
|
|
|
Download the Rational Application Developer (RAD) v7.5 open beta code and start developing applications for the JEE5 standard which features EJB3.0, JPA, JSF 1.2, JSP 2.1 and Servlet 2.5 standards. When you use this beta you will see how you can increase developer productivity for already existing applications with improved support for refactoring, as well as adding new features to existing applications. In addition, the beta provides tooling for JD Edwards, Oracle, SAP, Siebel and PeopleSoft to improve the developer productivity with these enterprise systems. FREE! Go There Now!
|
|
|
|
Download the IBM WebSphere Portal V6.1 beta code and learn more about the rich features and enhancements in IBM WebSphere Portal V6.1. WebSphere Portal provides a composite application or business mashup framework and the advanced tooling needed to build flexible, SOA-based solutions, and scalability to meet the needs of any size organization. FREE! Go There Now!
|
|
|
|
XML has become a common way of storing business data as flat files and many data server vendors including IBM have provided ways to store this data within relational database systems. Increasingly collections of XML files are accessed like databases using an xQuery and other XML standard mechanisms. Businesses find the need to combine the traditional tabular structured data with XML formatted data. In this webcast, you’ll learn about IBM’s WebSphere Federation Server technology, which provides users with the ability to integrate these two data formats. FREE! Go There Now!
|
|
|
|
Ken Krugler, co-founder of code search company Krugle, and Laura Merling, vice president of Marketing and Business Development for Krugle, join to talk about the ins and outs of code search and what it means as a new feature for developerWorks users. FREE! Go There Now!
|
|
|
|
Because access to government information continues to be an area of concern for many U.S. citizens with disabilities, the U.S. government enacted Section 508 of the Rehabilitation Act in 2001 to ensure that government agencies create accessible Web content, enabling all citizens to access the information they need. A fully accessible Web site makes Web content accessible to all individuals, including those with disabilities, who may be accessing Web content via a variety of user agents. Common user agents include standard Web browsers, text-only browsers, assistive devices and mobile devices such as cell phones or personal digital assistants (PDAs). FREE! Go There Now!
|
|
|
|
Get a free trial download of the latest version of IBM Rational Functional Tester V7.0.1. Rational Functional Tester is an automated functional and regression testing solution for QA teams concerned with the quality of their Java, Microsoft Visual Studio .NET, and Web-based applications. FREE! Go There Now!
|
|
|
|
Get a free trial download of the latest version of IBM Rational Method Composer V7.2 which helps you deliver customized yet consistent process guidance to your project teams and IT organization, and includes the latest version of IBM Rational Unified Process (RUP), which has provided process guidance to teams since 1996. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to try the IBM SOA Sandbox for connectivity. The SOA Sandbox for connectivity provides a trial environment with the tooling and components to help you explore how to effectively connect your infrastructure and integrate all of the people, processes and information in your company. Use the hosted sandbox to explore SOA techniques that streamline connecting existing IT assets together, as well as learn how to connect them to new business logic. FREE! Go There Now!
|
|
|
|
As businesses grow increasingly dependent upon Web applications, these complex entities grow more difficult to secure. Most companies equip their Web sites with firewalls, Secure Sockets Layer (SSL), and network and host security, but the majority of attacks are on applications themselves – and these technologies cannot prevent them. This paper explains what you can do to help protect your organization, and it discusses an approach for improving your organization’s Web application security. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |