广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    不用数据库的多用户文件自由上传投票系统(3)

    2018-09-29 11:21:41 次阅读 稿源:互联网
    零七广告
    这是本系统的第四个文件.upload.php主要负责,文件名的校验
    ,上传文件和文件地址的归档

    <html>
    <head><title>文件上传</title>
    <body><div style="width:750"><center>
    <?php
    //上传的栏目$col,$upfile上传的文件,$writer作者,$intro简介


    $writer=substr(htmlspecialchars($writer),0,20);
    $intro=substr(htmlspecialchars($intro),0,100);

    $maxsize=512000*2;//最大的文件长度
    $pathtemp=explode("/",$HTTP_ENV_VARS["PATH_INFO"]);
    $pathtemp[sizeof($pathtemp)-1]="";
    $cgiroot="http://".$HTTP_HOST.implode("/",$pathtemp);//主机加当前目录



    //$cgiroot="http://eccct.51.net/cgi-bin/";
    $uploadto="../uploadfile/".$col."/";//上传到的子目录

    $goback="<br><br><br><br><center>系统将在3秒后返回....</center><script>setTimeout('location.href="view.php?col=".$col.""',3000)</script>";




    set_time_limit(300);//可持续五分钟











    //if(!is_dir($uploadto)) mkdir($uploadto,0755);

    if($upfile_size>$maxsize)
    die("<h1><font color=red>对不起,您要上传的文件太大了,超过了1MB</font></h1>".$goback);

    $filename=$upfile_name;
    $i=0;
    while(file_exists($uploadto.$filename)){
    $i++;

    $filesp=explode('.',trim($upfile_name));
    //echo $filesp[sizeof($filesp)-1];
    //echo $filesp[sizeof($filesp)-1]!="zip";
    //echo $filesp[sizeof($filesp)-1]!="rar";

    if((trim($filesp[sizeof($filesp)-1])!="zip") && (trim($filesp[sizeof($filesp)-1])!="rar")){

    die("<h1><font color=red>上传文件的后缀名必须是zip或rar(小写)</font></h1>".$goback);

    }

    $filename=$filesp[0].$i.".".$filesp[1];

    }


    if ($i>0)
    echo ("<font color=red>对不起,您要上传的文件名已经存在了,<br>系统自动将其更名为".$filename."</font>");

    //检查合理性结束

    if(!copy($upfile,$uploadto.$filename)) die("<h1><font color=red>系统出现错误03,请将文件重传<br></font></h1>".$goback);

    //写文件列表
    $fileurl=$uploadto.$filename;//文件url
    $flists=$uploadto.$col.".lst";//文件列表位置

    for($i=0;$i<100 && !file_exists($flists);$i++);
    if($i==99) {
    unlink($uploadto.$filename);
    die("系统出错00".$goback);
    }


    copy($flists,$flists.".bak");
    if(!$fp=fopen($flists,"r")){
    unlink($uploadto.$filename);
    die("出错01".$goback);
    }
    $filerc=explode(">",fread($fp,filesize($flists)));//上传的档案资料
    fclose($fp);

    unlink($flists);

    $firstrec=explode("<",$filerc[0]);

    if(!$firstrec[0]) $id=1;
    else $id=$firstrec[0]+1;

    $oldinfo=implode(">",$filerc);

    $newinfo=$id."<".$writer."<".$filename."<0<".$intro."<".$upfile_size."<0>".$oldinfo;
    //编号<作者<文件位置<投票计数<简介<文件大小<文件下载次数

    if(!$fp=fopen($flists,"w")){
    unlink($uploadto.$filename);
    copy($flists.".bak",$flists);
    die("出错02".$goback);
    }

    fwrite($fp,trim($newinfo));

    fclose($fp);


    //写文件列表结束


    //文件传送

    echo "<h1>传送成功</h1>";



    echo "文件在<a href=".$fileurl.">".$cgiroot.$fileurl."</a>.$goback";
    //文件传送成功




    ?>
    </center>
    </div>
    </body>
    </html>

    这是本文的最后一篇,主要介绍如何使用系统,让我们用个事例来说明:

    例如我们要做flash作品上传投票,那我们只需要在../uploadfile/(相对系统php文件所在位置)子目录下建一个flash子目录,并在其中建立下列文件:flash.if(记录显示时出现的标题),flash.ip(投票ip记录),flash.ipd(下载ip记录),flash.lst(下载文件信息记录).然后使用view.php?col=flash就可使用系统了,如果要新增栏目/用户php作品上传,只需在../uploadfile/下另建子目录php,和相应文件,并使用view.php?col=php就可使用了 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告