直播中
下面我們用兩種方法來(lái)實(shí)現(xiàn)這個(gè)功能:
1. 用 PHP 來(lái)保存:
我們先定義一個(gè)文件保存函數(shù) fup() 它有兩個(gè)參數(shù):
$filename: 文件內(nèi)容
$fname: 文件名(包含路徑)
剩下的就是寫(xiě)一個(gè)循環(huán)將文件依次寫(xiě)入服務(wù)器。這里要簡(jiǎn)單說(shuō)明一下:
PHP 對(duì)于上傳文件的處理是這樣的:如果提交的文件框我為 file0, 那么提交給 PHP 的文件內(nèi)容保存在變量 $file0 中,而文件名則保存在 $file0_name 中。這樣在這個(gè)循環(huán)中我要做的就是將提交頁(yè)面提交的內(nèi)容分解出來(lái),實(shí)現(xiàn)過(guò)程請(qǐng)看下面的代碼。
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 來(lái)保存:
它們實(shí)現(xiàn)的原理完全一樣,在此不多說(shuō),請(qǐng)看代碼:
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;
#<<<<<<<<<<<<<<<<<<<<<以下為自定義過(guò)程<<<<<<<<<<<<<<<<<<<<<<<<<
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>文件上傳結(jié)果(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>';
}
----------------------------------------------------------------------
如有好的建議請(qǐng) Email: gearsoft@netease.com
【本文版權(quán)歸作者gearsoft與奧索網(wǎng)共同擁有,如需轉(zhuǎn)載,請(qǐng)注明作者及出處】