仓酷云
标题:
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