仓酷云

标题: PHP编程:让你同时上传 1000 个文件 (二 [打印本页]

作者: 只想知道    时间: 2015-2-4 00:07
标题: PHP编程:让你同时上传 1000 个文件 (二
我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。   文件提交页面既已生成,上面义务就很明白了:将提交的文件内容保留到办事器上。

上面咱们用两种办法来完成这个功效:

1. 用 PHP 来保留:
咱们先界说一个文件保留函数 fup() 它有两个参数:
     $filename: 文件内容
     $fname: 文件名(包括途径)
剩下的就是写一个轮回将文件顺次写入办事器。这里要复杂申明一下:
PHP 关于上传文件的处置是如许的:假如提交的文件框我为 file0, 那末提交给 PHP 的文件内容保留在变量 $file0 中,而文件名则保留在 $file0_name 中。如许在这个轮回中我要做的就是将提交页面提交的内容分化出来,完成进程请看上面的代码。

fileup.php
----------------------------------------------------------------------
<?
    function fup($filename,$fname)
    {        If($filename != "none") {
                copy($filename,$fname);
                unlink($filename);  
            }
    }

    for($i=0;$i<$cnt;$i++)
    {
        $ffnn="file".$i;
        $ffnnname=$ffnn."_name";
        $ffpath="path".$i;
         
        //print $$ffnn;
        print $$ffnnname;
        print "<br>";
         
        fup($$ffnn,$$ffpath.$$ffnnname); //"../www/test/tmp/"
    }
?>
----------------------------------------------------------------------

2. 用 PERL 来保留:
它们完成的道理完整一样,在此不多说,请看代码:

fileup.cgi(fileup.pl)
----------------------------------------------------------------------
#!/usr/bin/perl  

use CGI qw/:standard/;  

if ($ENV{'CONTENT_TYPE'} !~ /multipart/form-data/) {  
  print "Cache-Control: no-cachenPragma: no-cachen" .  
    "Content-Type: text/htmlnn" .  
    "<html><body>Your web browser cannot upload files. Sorry.</body></html>";  
  exit 0;  
}


$cntfile=param('cnt');
print header;  
print start_html;  
#print "Receiving Please wait....";

&g_head;

#$writed = '../www/test/tmp/';

for ($i=0;$i<$cntfile;$i++){
    $paramfile = 'file'.$i;
    $parampath='path'.$i;
     
    $writed=param($parampath);

    &upfile;
    &g_body;
}

&g_bott;

#<<<<<<<<<<<<<<<<<<<<<以下为自界说进程<<<<<<<<<<<<<<<<<<<<<<<<<

sub upfile
{
    $maxdata = 512000;  
#    $writed = '../www/test/tmp/';  


    $strRFname=reverse $xfile;
    $intIndex=index($strRFname,'\');
    $strNetFname=substr($strRFname,0,$intIndex);
    $strNetFname=scalar reverse $strNetFname;
     
     
    if((stat $xfile)[7]>$maxdata){  
        print "Status: 411 Size Not Allowedn" .  
            "Content-Type: text/htmlnAllow: POSTnn" .  
            "<html><head><title>411 411 Size Not Allowed</title></head><body><h1> You got big problem.  Try again.</h1></body></html>n";  
        exit 0;  
    }  
     
     
    binmode $xfile;  
    use File::Copy;  
    copy($xfile,$writed.$strNetFname);  
}

sub g_head{
    print '<table border=1 align=center>';
    print '<tr><td colspan=3 align=center>文件上传了局(Upload Result)</td></tr>';
    print '<tr align=center>';
    print '    <td>SourceFile:</td>';
    print '    <td>DestFile:</td>';
    print '    <td>Upload</td>';
    print '</tr>';
}

sub g_body{
    print '<tr>';
    print '    <td>'.$xfile .'</td>';
    print '    <td>'.$writed.$strNetFname.'</td>';
    print '    <td>OK!</td>';
    print '</tr>';
}

sub g_bott{
    print '</table>';
}
---------------------------------------------------------------------- 也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?
作者: 因胸联盟    时间: 2015-2-4 08:57
做为1门年轻的语言,php一直很努力。
作者: 小女巫    时间: 2015-2-6 01:43
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 若相依    时间: 2015-2-7 19:23
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 山那边是海    时间: 2015-2-23 02:59
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 深爱那片海    时间: 2015-3-8 10:32
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 海妖    时间: 2015-3-15 21:20
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 小妖女    时间: 2015-3-19 05:38
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 精灵巫婆    时间: 2015-3-27 08:04
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 蒙在股里    时间: 2015-4-7 07:52
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 分手快乐    时间: 2015-4-7 20:42
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 变相怪杰    时间: 2015-4-9 15:00
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 柔情似水    时间: 2015-4-16 13:43
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 金色的骷髅    时间: 2015-4-26 17:07
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 愤怒的大鸟    时间: 2015-5-3 20:51
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: 只想知道    时间: 2015-5-6 12:22
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: 兰色精灵    时间: 2015-6-26 20:18
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 谁可相欹    时间: 2015-6-29 21:02
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 小魔女    时间: 2015-7-2 09:46
做为1门年轻的语言,php一直很努力。
作者: 冷月葬花魂    时间: 2015-7-4 12:59
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2