  
- UID
- 1
- 威望
- 1240 点
- 金钱
- 24019 金币
- 点卡
- 317 点
|
多文件上载系统完整版
多文件上载系统完整版
作者:unknown 更新时间: 2005-03-17
- <?php
- //多文件上载系统完整版
- //功能强大,可任意控制上载文件数,是否覆盖
- include("../include/common.inc");
- $title = "多个文件的上载程序";
- include("../include/header.inc");
- //定义允许上载文件的数目
- define("UPLOAD_NO", 10);
- echo("<p align=';center';><font size=';4'; color=';#000080';>欢迎您!<br>一次可以最多上载".UPLOAD_NO."个文件<br><HR>n");
- if($REQUEST_METHOD!="POST"){
- echo("<form enctype="multipart/form-data" method=post>n");
- echo("<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="3000000">n");
-
- for($i=1;$i<=UPLOAD_NO;$i++){
- echo("<input type=file name=infile$i> ");
- if($i%2==0)
- echo("<br>n");
- }
-
- echo("<br><br><input type="checkbox" name="overload" value="ON"></font> <font color=';#ff0000';>是否覆盖已经存在的文件?</font>");
- echo("<br><br><input type=submit value=上载></form>n");
- }
- else{
- //处理上载
- $noinput = true;
- for($i=1;$noinput&&($i<=UPLOAD_NO);$i++){
- if(${"infile".$i}!="none") $noinput = false;
- }
- if($noinput){
- echo("<font size=';4'; color=';#000080';>没有选定的文件,返回重试</font>");
- exit();
- }
- echo("<p align=';center';><font size=';4'; color=';#000080';>您选中的文件已经成功地上载到服务器的临时目录!</font><br>");
- echo("<table border=';1'; width=';84%'; height=';52'; bordercolorlight=';#008080'; bordercolordark=';#008080';>
- <tr>
- <td width=';14%'; bgcolor=';#008000'; height=';21';><font color=';#FFFFFF';>文件号</font></td>
- <td width=';52%'; bgcolor=';#008000'; height=';21';><font color=';#FFFFFF';>文件名称</font></td>
- <td width=';34%'; bgcolor=';#008000'; height=';21';><font color=';#FFFFFF';>文件大小</font></td>
- </tr>");
- for($i=1;$i<=UPLOAD_NO;$i++){
- $just=${"infile".$i."_size"};
- $fp_size[i] = $just;
-
- if($overload!=ON){
- if(file_exists(AddSlashes(dirname($PATH_TRANSLATED))."\upload\".${"infile".$i."_name"}))
- echo "<font size=';4'; color=';#ff0000';>您上载的文件<font color=';#000000';>".${"infile".$i."_name"}."</font>已经存在,该文件拷贝失败!</font><br>";
- else{
- if(${"infile".$i}!="none"&?(${"infile".$i},AddSlashes(dirname($PATH_TRANSLATED))."/upload/".${"infile".$i."_name"})&&unlink(${"infile".$i})){
- $str = ${"infile".$i."_name"};
- echo("<tr>
- <td width=';14%'; height=';19';>$i</td>
- <td width=';52%'; height=';19';>$str</td>
- <td width=';34%'; height=';19';>$fp_size[i]</td>
- </tr>");
- }
- }
- }
- else{
- if(${"infile".$i}!="none"&?(${"infile".$i},AddSlashes(dirname($PATH_TRANSLATED))."upload".${"infile".$i."_name"})&&unlink(${"infile".$i})){
- $str = ${"infile".$i."_name"};
- echo("<tr>
- <td width=';14%'; height=';19';>$i</td>
- <td width=';52%'; height=';19';>$str</td>
- <td width=';34%'; height=';19';>$fp_size[i]</td>
- </tr>");
- }
- }
- }
- echo "</table>";
- }
- include("../include/footer.inc");
-
- ?>
复制代码
upload.php- <?php
- include_once "upload.class.php";
- if ($Submit != ';';)
- {
- $fileArr[';file';] = $file;
- $fileArr[';name';] = $file_name;
- $fileArr[';size';] = $file_size;
- $fileArr[';type';] = $file_type;
- /** 所允许上传的文件类型 */
- $filetypes = array(';gif';,';jpg';,';jpge';,';png';);
- /** 文件上传目录 */
- $savepath = "/usr/htdocs/upload/";
- /** 没有最大限制 0 无限制*/
- $maxsize = 0;
- /** 覆盖 0 不允许 1 允许 */
- $overwrite = 0;
- $upload = new upload($fileArr, $file_name, $savepath, $filetypes, $overwrite, $maxsize);
- if (!$upload->run())
- {
- echo "上传失败".$upload->errmsg();
- }
- }
- ?>
- <html>
- <head>
- <title>文件上传</title>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- </head>
- <body bgcolor="#FFFFFF" text="#000000">
- <form name="form1" enctype="multipart/form-data" method="post" action="">
- <input type="file" name="file">
- <input type="submit" name="Submit" value="Submit">
- </form>
- </body>
- </html>
复制代码
upload.class.php
- <?php
- //
- // +----------------------------------------------------------------------+
- // | 文件上传 |
- // | 本代码仅供学习讨论之用,允许随意修改 |
- // | Author: whxbb(whxbb@21cn.com) |
- // +----------------------------------------------------------------------+
- //
- // $Id: upload.class.php,v 1.0 2001/10/14 14:06:57 whxbb Exp $
- //
- $UPLOAD_CLASS_ERROR = array( 1 => ';不允许上传该格式文件';,
- 2 => ';目录不可写';,
- 3 => ';文件已存在';,
- 4 => ';不知名错误';,
- 5 => ';文件太大';
- );
- /**
- * Purpose
- * 文件上传
- *
- * Example
- *
- $fileArr[';file';] = $file;
- $fileArr[';name';] = $file_name;
- $fileArr[';size';] = $file_size;
- $fileArr[';type';] = $file_type;
- // 所允许上传的文件类型
- $filetypes = array(';gif';,';jpg';,';jpge';,';png';);
- // 文件上传目录
- $savepath = "/usr/htdocs/upload/";
- // 没有最大限制 0 无限制
- $maxsize = 0;
- // 覆盖 0 不允许 1 允许
- $overwrite = 0;
- $upload = new upload($fileArr, $file_name, $savepath, $filetypes, $overwrite, $maxsize);
- if (!$upload->run())
- {
- echo $upload->errmsg();
- }
- *
- * @author whxbb(whxbb@21cn.com)
- * @version 0.1
- */
- class upload
- {
- var $file;
- var $file_name;
- var $file_size;
- var $file_type;
- /** 保存名 */
- var $savename;
- /** 保存路径 */
- var $savepath;
- /** 文件格式限定 */
- var $fileformat = array();
- /** 覆盖模式 */
- var $overwrite = 0;
- /** 文件最大字节 */
- var $maxsize = 0;
- /** 文件扩展名 */
- var $ext;
- /** 错误代号 */
- var $errno;
- /**
- * 构造函数
- * @param $fileArr 文件信息数组 ';file'; 临时文件所在路径及文件名
- ';name'; 上传文件名
- ';size'; 上传文件大小
- ';type'; 上传文件类型
- * @param savename 文件保存名
- * @param savepath 文件保存路径
- * @param fileformat 文件格式限制数组
- * @param overwriet 是否覆盖 1 允许覆盖 0 禁止覆盖
- * @param maxsize 文件最大尺寸
- */
- function upload($fileArr, $savename, $savepath, $fileformat, $overwrite = 0, $maxsize = 0) {
- $this->file = $fileArr[';file';];
- $this->file_name = $fileArr[';name';];
- $this->file_size = $fileArr[';size';];
- $this->file_type = $fileArr[';type';];
- $this->get_ext();
- $this->set_savepath($savepath);
- $this->set_fileformat($fileformat);
- $this->set_overwrite($overwrite);
- $this->set_savename($savename);
- $this->set_maxsize($maxsize);
- }
- /** 上传 */
- function run()
- {
- /** 检查文件格式 */
- if (!$this->validate_format())
- {
- $this->errno = 1;
- return false;
- }
- /** 检查目录是否可写 */
- if(!@is_writable($this->savepath))
- {
- $this->errno = 2;
- return false;
- }
- /** 如果不允许覆盖,检查文件是否已经存在 */
- if($this->overwrite == 0 && @file_exists($this->savepath.$this->savename))
- {
- $this->errno = 3;
- return false;
- }
- /** 如果有大小限制,检查文件是否超过限制 */
- if ($this->maxsize != 0 )
- {
- if ($this->file_size > $this->maxsize)
- {
- $this->errno = 5;
- return false;
- }
- }
- /** 文件上传 */
- if(!@copy($this->file, $this->savepath.$this->savename))
- {
- $this->errno = 4;
- return false;
- }
- /** 删除临时文件 */
- $this->destory();
- return true;
- }
- /**
- * 文件格式检查
- * @access protect
- */
- function validate_format()
- {
- if (!is_array($this->fileformat)) // 没有格式限制
- return true;
- $ext = strtolower($this->ext);
- reset($this->fileformat);
- while(list($var, $key) = each($this->fileformat))
- {
- if (strtolower($key) == $ext)
- return true;
- }
- reset($this->fileformat);
- return false;
- }
- /**
- * 获取文件扩展名
- * access public
- */
- function get_ext()
- {
- $ext = explode(".", $this->file_name);
- $ext = $ext[count($ext) - 1];
- $this->ext = $ext;
- }
- /**
- * 设置上传文件的最大字节限制
- * @param $maxsize 文件大小(bytes) 0:表示无限制
- * @access public
- */
- function set_maxsize($maxsize)
- {
- $this->maxsize = $maxsize;
- }
- /**
- * 设置覆盖模式
- * @param 覆盖模式 1:允许覆盖 0:禁止覆盖
- * @access public
- */
- function set_overwrite($overwrite)
- {
- $this->overwrite = $overwrite;
- }
- /**
- * 设置允许上传的文件格式
- * @param $fileformat 允许上传的文件扩展名数组
- * @access public
- */
- function set_fileformat($fileformat)
- {
- $this->fileformat = $fileformat;
- }
- /**
- * 设置保存路径
- * @param $savepath 文件保存路径:以 "/" 结尾
- * @access public
- */
- function set_savepath($savepath)
- {
- $this->savepath = $savepath;
- }
- /**
- * 设置文件保存名
- * @savename 保存名,如果为空,则系统自动生成一个随机的文件名
- * @access public
- */
- function set_savename($savename)
- {
- if ($savename == ';';) // 如果未设置文件名,则生成一个随机文件名
- {
- srand ((double) microtime() * 1000000);
- $rnd = rand(100,999);
- $name = date(';Ymdhis';) + $rnd;
- $name = $name.".".$this->ext;
- } else {
- $name = $savename;
- }
- $this->savename = $name;
- }
- /**
- * 删除文件
- * @param $file 所要删除的文件名
- * @access public
- */
- function del($file)
- {
- if(!@unlink($file))
- {
- $this->errno = 3;
- return false;
- }
- return true;
- }
- /**
- * 删除临时文件
- * @access proctect
- */
- function destory()
- {
- $this->del($this->file);
- }
- /**
- * 得到错误信息
- * @access public
- * @return error msg string or false
- */
- function errmsg()
- {
- global $UPLOAD_CLASS_ERROR;
-
- if ($this->errno == 0)
- return false;
- else
- return $UPLOAD_CLASS_ERROR[$this->errno];
- }
- }
- ?>
复制代码 |
我是一个呼吸着现在的空气而生活在过去的人
这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
我已习惯了孤独,爱上孤独
他让我看清了自我,还原了自我
让我再静静的沉思中得到快乐和满足
再孤独的世界里我一遍又一遍
不厌其烦的改写着自己的过去
延伸到现在与未来
然而那只是泡沫般的美梦
产生的时刻又伴随着破灭的到来
在灰飞烟灭的瞬间我看到的是过程的美丽
而不是结果的悲哀。。。
|
|