这是一个文件操作及下载系统。下面是这个程序的主体部分files.php
<?php
setcookie("password",$password,time()+94555556);
require('filesconfig.php');
function filesHeader()
{
// 在这儿放置你的页眉部分!
return;
}
function filesFooter()
{
// 在这儿放置你的页脚部分!
return;
}
/* ================================================================
通过用户名ID下载文件
================================================================ */
if ($func == "download")
{
if ($id)
{
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "SELECT * FROM files WHERE id = $id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$link = $row["url"];
$newsql = "UPDATE files SET downloads=downloads+1 WHERE id = '$id'";
mysql_query($newsql)
or die("CAN'T UPDATE FILE DOWNLOAD COUNT!!!");
echo "<html><head><meta http-equiv=\"Refresh\" content=\"5; URL=" . $link . "\"></head><body><CENTER><B>Your download will start in 5 seconds<BR><BR><a href=\"" . $link . "\">Click here if it doesn't start</a></B></CENTER></body></html>";
exit;
} else {
echo "Invalid id";
}
}
filesHeader();
/* ================================================================
如果没有作用的话, 打印有用的文件夹
================================================================ */
if (!$func)
{
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "SELECT * FROM files_catagory ORDER BY id";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
?>
<?php
do
{
?>
<font size="2"><B>?<a href="files.php?func=selectcat&cat=<?php echo $row[id]; ?>"><?php echo $row[name]; ?></font></B></a><BR><font size="1"><?php echo $row[description]; ?></font><BR><BR>
<?php
} while ($row = mysql_fetch_array($result));
} else {
echo "NO CATAGORIES!!!<BR><BR>";
}
echo "<font size=1><b>Admin Functions</b>: <a href=files.php?func=addcatagory>添加 Catagory</a></font>";
}
/* ========================================================================
如果功能是选择cat, 通过用户ID选择catagory .
由 catagory得到的信息来运行, 包括文件目录及文件
======================================================================== */
if ($func == "selectcat")
{
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql2 = "SELECT * FROM files_catagory WHERE id = $cat";
$result2 = mysql_query($sql2);
$currentcat = mysql_fetch_array($result2);
echo "<font size=2 color=#FFFF00><B>$currentcat[name]</B></font><BR>";
echo "<font size=1>$currentcat[description]</font><BR><BR>";
$sql = "SELECT * FROM files_folders WHERE catid = $cat";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
echo "<font size=3><b>Folders:</b></font><BR>";
echo "<BLOCKQUOTE>";
do
{
?>
<font size="2" color="#FFFF00"><b>?<a href="files.php?func=selectfolder&id=<?php echo $row[id];?>"><?php echo $row[name]; ?></a></b></font><br><font size="1"><?php echo $row[description]; ?></font><BR>
<?php
} while ($row = mysql_fetch_array($result));
echo "</BLOCKQUOTE>";
}
$sql = "SELECT * FROM files WHERE catid = $cat";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
echo "<font size=3><b>Files:</b></font><BR>";
echo "<BLOCKQUOTE>";
do
{
?>
<font size="2" color="#FFFF00">
<b>?<a href="files.php?func=fileinfo&id=<?php echo $row2[id];?>"><?php echo $row2[filename]; ?></a></b></font>
<B>Size:</B> <?php echo $row2["filesize"]; ?></font><br><font size="1"><?php echo $row2[description]; ?></font><BR>
<?php
} while ($row = mysql_fetch_array($result));
echo "</BLOCKQUOTE>";
}
echo "<BR><BR><font size=1><b>Admin Options:</b> <a href=files.php?func=deletecat&id=$cat>Delete Catagory</a>, <a href=files.php?func=addfolder&parent=catagory&id=$cat>Add Folder</a>, <a href=files.php?func=addfile&parent=catagory&id=$cat>Add File</a>.</font><BR>";
}
/* ========================================================================
文件信息
======================================================================== */
if ($func == "fileinfo")
{
if (!$id) {
echo "INVALID ID";
} else {
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "SELECT * FROM files WHERE id = $id";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
?>
<font size="2">
<b>Filename:</b> <?php echo $row["filename"]; ?> <a href="files.php?func=download&id=<?php echo $row[id];?>">Download this file!</a><BR>
<b>Filesize:</b> <?php echo $row["filesize"]; ?><BR>
<b>Filetype:</b> <?php echo $row["filetype"]; ?><BR>
<b>Downloads:</b> <?php echo $row["downloads"]; ?><BR>
<b>Description:</b><BR><?php echo $row["description"]; ?><BR><BR>
<form>
<input type="button" value="Back" onclick="history.back()">
</form>
<?
} else {
echo "INVALID ID";
}
}
echo "<BR><BR><font size=1><b>Admin Options:</b> <a href=files.php?func=deletefile&id=$id>删除文件</a>.</font><BR>";
}
/* ========================================================================
如果功能是选择文件夹, 通过一些资料运行.
-查找文件夹
-查找文件
======================================================================== */
if ($func == "selectfolder")
{
if (!$id)
{
echo "Invalid ID";
} else {
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "SELECT * FROM files_folders WHERE id = $id";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
echo "<font size=2 color=#FFFF00><B>$row[name]</B></font><BR>";
echo "<font size=1>$row[description]</font><BR><BR>";
$sql = "SELECT * FROM files_folders WHERE parentid = $id";
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
echo "<font size=3><b>Folders:</b></font><BR>";
echo "<BLOCKQUOTE>";
do
{
?>
<font size="2" color="#FFFF00"><b>?<a href="files.php?func=selectfolder&id=<?php echo $row[id];?>"><?php echo $row[name]; ?></a></b></font><br><font size="1"><?php echo $row[description]; ?></font><BR>
<?php
} while ($row = mysql_fetch_array($result));
echo "</BLOCKQUOTE>";
}
$sql = "SELECT * FROM files WHERE folderid = $id";
$result = mysql_query($sql);
if ($row2 = mysql_fetch_array($result))
{
echo "<font size=3><b>Files:</b></font><BR>";
echo "<BLOCKQUOTE>";
do
{
?>
<b>?<a href="files.php?func=fileinfo&id=<?php echo $row2[id];?>"><?php echo $row2[filename]; ?></a></b></font>
<B>Size:</B> <?php echo $row2["filesize"]; ?></font><br><font size="1"><?php echo $row2[description]; ?></font><BR>
<?php
} while ($row2 = mysql_fetch_array($result));
echo "</BLOCKQUOTE>";
}
echo "<BR><BR><font size=1><b>管理选择:</b> <a href=files.php?func=deletefolder&id=$id>Delete Folder</a>, <a href=files.php?func=addfolder&parent=folder&id=$id>Add Folder</a>, <a href=files.php?func=addfile&parent=folder&id=$id>Add File</a>.</font><BR>";
} else {
echo "Invalid ID!";
}
}
}
/* =================================================================================
我决定在这下面新建管理功能. 这样材料在上面对于用户比较容易.
=================================================================================
首先添加 catagory.
================================================================================= */
if ($func == "addcatagory")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
MYSQL_QUERY("INSERT INTO files_catagory (name,description) VALUES ('$catname','$description')")
or die ("Can't Update.");
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=addcatagory">
<B>Admin Password:</B> <INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<B>Catagory Name:</B> <INPUT TYPE="text" NAME="catname"><BR>
<B>Description:</B> <BR><TEXTAREA NAME="description" ROWS="4" COLS="35"></TEXTAREA><BR>
确定每一项都已填写正确.<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="submit"><INPUT TYPE="reset">
</FORM>
<?php
}
}
/* ================================================================================
删除 Catagory
================================================================================ */
if ($func == "deletecat")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "DELETE FROM files_catagory WHERE id = '$id'";
mysql_query($sql)
or die ("Can't Update.");
$sql = "DELETE FROM files WHERE catid = '$id'";
mysql_query($sql)
or die ("Can't Delete files");
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=deletecat&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="delete this catagory">
</FORM>
<?php
}
}
/* ================================================================================
新建文件夹
================================================================================ */
if ($func == "addfolder")
{
if ($parent == "catagory")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "INSERT INTO files_folders (catid,name,description) VALUES ('$id','$name','$description')";
mysql_query($sql)
or die ("Can't Update.");
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=addfolder&parent=catagory&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<B>Name: </B><INPUT TYPE="text" name="name"><BR>
<B>Description: </b><BR><TEXTAREA NAME="description" ROWS="4" COLS="35"></TEXTAREA><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="add folder">
</FORM>
<?php
}
}
if ($parent == "folder")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "INSERT INTO files_folders (parentid,name,description) VALUES ('$id','$name','$description')";
mysql_query($sql)
or die ("Can't Update.");
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=addfolder&parent=folder&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<B>Name: </B><INPUT TYPE="text" name="name"><BR>
<B>Description: </b><BR><TEXTAREA NAME="description" ROWS="4" COLS="35"></TEXTAREA><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="add folder">
</FORM>
<?php
}
}
}
/* ================================================================================
添加文件
================================================================================ */
if ($func == "addfile")
{
if ($parent == "catagory")
{
if ($submit)
{
if ($password == $adminpass AND $submit) {
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
MYSQL_QUERY("INSERT INTO files (catid,url,description,filename,filesize,filetype) VALUES ('$id','$url','$description','$name','$size','$filetype')")
or die ("Can't Add File");
echo "FILE ADDED!<BR>";
} else {
echo "Password Incorrect.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=addfile&parent=catagory&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<B>Description: </b><BR><TEXTAREA NAME="description" ROWS="4" COLS="35"></TEXTAREA><BR>
<B>URL:</B> <input type="text" name="url" size="50"><BR>
<B>Filename:</B> <input type="text" name="name"><BR>
<B>Filesize:</B> <input type="text" name="size" size="50"><BR>
<B>Filetype:</b> <input type="text" name="filetype" size="50"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="add file"><BR>
Make sure all fields are properly filled out.<BR>
</FORM>
<?php
}
} elseif ($parent == "folder") {
if ($submit)
{
if ($password == $adminpass AND $submit)
{
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
MYSQL_QUERY("INSERT INTO files (folderid,url,description,filename,filesize,filetype) VALUES ('$id','$url','$description','$name','$size','$filetype')")
or die ("Can't Add File");
echo "FILE ADDED!<BR>";
} else {
echo "Password Incorrect.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=addfile&parent=folder&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<B>Description: </b><BR><TEXTAREA NAME="description" ROWS="4" COLS="35"></TEXTAREA><BR>
<B>URL:</B> <input type="text" name="url" size="50"><BR>
<B>Filename:</B> <input type="text" name="name"><BR>
<B>Filesize:</B> <input type="text" name="size" size="50"><BR>
<B>Filetype:</b> <input type="text" name="filetype" size="50"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="add file"><BR>
Make sure all fields are properly filled out.<BR>
</FORM>
<?php
}
}
}
/* ================================================================================
删除文件夹
================================================================================ */
if ($func == "deletefolder")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "DELETE FROM files_folders WHERE id = '$id'";
mysql_query($sql)
or die ("Can't Update.");
$sql = "DELETE FROM files WHERE folderid = '$id'";
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=deletefolder&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="删除文件夹">
</FORM>
<?php
}
}
/* ================================================================================
删除文件
================================================================================ */
if ($func == "deletefile")
{
if ($submit)
{
if ($password == $adminpass AND $submit){
mysql_connect($db_host, $db_user, $db_pass)
or die ("Unable to connect to database.");
mysql_select_db($db_database)
or die ("Unable to select database.");
$sql = "DELETE FROM files WHERE id = '$id'";
mysql_query($sql)
or die ("Can't Update.");
echo "All Done! <a href=files.php>主页</a>";
} else {
echo "Password 错误.";
}
} else {
?>
<FORM METHOD=POST ACTION="files.php?func=deletefile&id=<?php echo $id; ?>">
<B>Admin Password: </B><INPUT TYPE="text" NAME="password" VALUE="<?php echo $password;?>"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="删除文件">
</FORM>
<?php
}
}
echo "<p align=right>(<a href=mailto:$adminemail>有疑问的话给管理员写信</a>)</p>";
filesFooter();
?>
以上给出了文件下载操作的程序,为了更完善程序,以下是数据库以及设置文件
数据库文件
files.sql
CREATE TABLE files (
id int(255) DEFAULT '0' NOT NULL auto_increment,
catid int(255) DEFAULT '0' NOT NULL,
folderid int(255) DEFAULT '0' NOT NULL,
filesize varchar(255) NOT NULL,
filename varchar(255) NOT NULL,
filetype varchar(255) NOT NULL,
description text NOT NULL,
votes int(255) DEFAULT '0' NOT NULL,
allvotes int(255) DEFAULT '0' NOT NULL,
downloads int(255) DEFAULT '0' NOT NULL,
url text NOT NULL,
UNIQUE id (id)
);
CREATE TABLE files_catagory (
id int(255) DEFAULT '0' NOT NULL auto_increment,
name varchar(255) NOT NULL,
description text NOT NULL,
files int(255) DEFAULT '0' NOT NULL,
upload int(1) DEFAULT '0' NOT NULL,
UNIQUE id (id)
);
CREATE TABLE files_folders (
id int(255) DEFAULT '0' NOT NULL auto_increment,
catid int(255) DEFAULT '0' NOT NULL,
parentid int(255) DEFAULT '0' NOT NULL,
name varchar(255) NOT NULL,
description text NOT NULL,
files int(255) DEFAULT '0' NOT NULL,
UNIQUE id (id)
);
配置文件
filesconfig.php
<?
/* 配置文件*/
/* 管理密码!!! 可以改变!!! 还是改了方便!!! */
$adminpass = "123456!";
$adminemail = "[email protected]";
$db_host = "localhost";
$db_user = "user";
$db_pass = "pass";
$db_database = "database";
?>
|