|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。
PHP3是一种十分壮大的CGI剧本言语,就其言语特色根基上源于C,就其完成体例而言更象PERL,而其对数据库的内涵撑持更使之成为ASP的壮大敌手。
起首在前台必需有一个界面
< HTML >
< HEAD >
< TITLE >文件上载界面< /TITLE >
< /HEAD >
< BODY >< TABLE >< CENTER >
< FORM ENCTYPE = "multipart/form-data" NAME = "SubmitForm"
ACTION = "upload.php3" METHOD = "POST" >
< INPUT TYPE = "hidden" NAME =
"MAX_FILE_SIZE" VALUE ="1000000" >
< TR >
< TD >< INPUT NAME = "UploadFile"
TYPE = "file" SIZE = "30" >< /TD >
< /TR >
< TR >
< TD >< INPUT NAME = "submit" VALUE =
"提交" TYPE = "submit" >< /TD >
< TD >< INPUT NAME = "reset" VALUE =
"重置" TYPE = "reset" >< /TD >
< /TR >
< /FORM >< /CENTER >< /TABLE >< /BODY >
< /HTML >
值得注重的是一个 MAX_FILE_SIZE 的埋没值域,经由过程设置其VALUE 可以限制上载文件的巨细。
然后在后台完成文件上载操作。假如只是最根基的上载,寥寥几行就能够弄定
< ?
If($UploadFile != "none")
{
copy($UploadFile,"$UploadFile_name");
unlink($UploadFile);
}
else
{
echo "你没有选择任何文件上载!";
}
? >
由于form传递过去的值主动赋值给同名变量,所以直接经由过程$UploadFile可以会见上载的文件,但因为这是一个保留文件的变量,因而文件名字必需经由过程别的一个$UploadFile_name变量获得。在拷贝文件后删去一时文件(unlink)。
下面的代码完整可以任务,但实践使用中破绽百出,让咱们慢慢来完美之
起首,上载的文件必需有一个固定的目次保留,咱们在这里用一个$UploadPath 变量保留之,如
$UploadPath = "/home/flier/upload/";
或庞杂一点的主动定位,如
$UploadPath = AddSlashes(dirname
($PATH_TRANSLATED))."\\upload\\";
$PATH_TRANSLATED望文生义是以后传送目次,
咱们假定以其一个名为upload的子目次来保留上载的文件。dirname函数前往其目次名,然后加上子目次名
然后用一个变量$FileName保留完全的上载后文件名和途径$FileName = $UploadPath.$UploadFile_name;
其次,咱们还想让用户得知上载文件的扼要信息,如上载文件的巨细
if($UploadFile_size < 1024)
// 上载文件巨细
{
$FileSize = (string)$UploadFile_size . " 字节";
}
elseif($UploadFile_size < (1024 * 1024))
{
$FileSize = number_format((double)
($UploadFile_size / 1024), 1) . " KB";
}
else
{
$FileSize = number_format((double)
($UploadFile_size / (1024 * 1024)), 1) . " MB";
}
number_format函数起到格局化输入的感化,详细用法请参照手册
下一步咱们必需思索到文件已存在和拷贝操作掉败的情形,并供应响应的提醒信息
if(!file_exists($FileName))
{
if(copy($UploadFile,$FileName))
{
echo "文件 $UploadFile_name
($FileSize)上载胜利!";
}
else
{
echo "文件 $UploadFile_name 上载掉败!";
}
unlink($UploadFile);
}
else
{
echo "文件 $UploadFile_name 已存在!";
}
然后咱们应当思索到大文件上载时轻易呈现超时的情形,可以用set_time_limit($TimeLimit); 加大超时限制工夫。
最初,把截面和完成代码综合到一个独自的文件中,为了完成这个设法,咱们经由过程在 form中添加一个隐含值< INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1" > 指出以后的形态(界面或完成),以便辨别看待 完成代码以下(文件名upload.php3)
< ?
if(!$UploadAction):
? >
< HTML >
< HEAD >
< TITLE >文件上载界面< /TITLE >
< /HEAD >
< BODY >< TABLE >< CENTER >
< FORM ENCTYPE = "multipart/form-data" NAME =
"SubmitForm" ACTION = "upload.php3" METHOD = "POST" >
< INPUT TYPE = "hidden" NAME =
"MAX_FILE_SIZE" VALUE ="1000000" >
< INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1" >
< TR >
< TD >< INPUT NAME = "UploadFile" TYPE =
"file" SIZE = "30" >< /TD >
< /TR >
< TR >
< TD >< INPUT NAME = "submit" VALUE =
"提交" TYPE = "submit" >< /TD >
< TD >< INPUT NAME = "reset" VALUE =
"重置" TYPE = "reset" >< /TD >
< /TR >
< /FORM >< /CENTER >< /TABLE >< /BODY >
< /HTML >
< ?
else:
? >
< HTML >
< HEAD >
< TITLE >文件上载代码< /TITLE >
< /HEAD >
< BODY >
< ?
$UploadAction=0;
$TimeLimit=60; /* 设置超时限制工夫
缺省工夫为 30 秒
设置为0时为不限时 */
set_time_limit($TimeLimit);
If(($UploadFile != "none")&&
($UploadFile != ""))
{
$UploadPath = AddSlashes(dirname
($PATH_TRANSLATED))."\\upload\\"; // 上载文件寄存途径
$FileName = $UploadPath.$UploadFile_name;
// 上载文件名
if($UploadFile_size < 1024)
// 上载文件巨细
{
$FileSize = (string)$UploadFile_size . " 字节";
}
elseif($UploadFile_size < (1024 * 1024))
{
$FileSize = number_format((double)
($UploadFile_size / 1024), 1) . " KB";
}
else
{
$FileSize = number_format((double)
($UploadFile_size / (1024 * 1024)), 1) . " MB";
}
if(!file_exists($FileName))
{
if(copy($UploadFile,$FileName))
{
echo "文件 $UploadFile_name ($FileSize)上载胜利!";
}
else
{
echo "文件 $UploadFile_name 上载掉败!";
}
unlink($UploadFile);
}
else
{
echo "文件 $UploadFile_name 已存在!";
}
}
else
{
echo "你没有选择任何文件上载!";
}
set_time_limit(30); // 恢复缺省超时设置
? >
< BR >< A HREF = "upload.php3" >前往< /A >
< /BODY >
< /HTML >
< ?
endif;
掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。 |
|