照片收藏夹
我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录
。 同时我们需要建立一个可以列出在该目录下所有照片的页面
。 文件上传
<?
include("include/common.inc");
//我们在这里再做一次用户验证
if(!isset($
PHP_AUTH_USER))
{
Header("WWW-Authenticate:Basicrealm="$MySiteName"");
Header("HTTP/1.0401Unauthorized");
echo"Sorry,youarenotauthorizedtouploadfiles
";
exit;
}
else
{
if(!($
PHP_AUTH_USER==$MyName&&$PHP_AUTH_PW==$MyPassword))
{
//如果是错误的用户名称/密码对
,强制再次认证
Header("WWW-Authenticate:Basicrealm="MyRealm"");
Header("HTTP/1.0401Unauthorized");
echo"ERROR:$PHP_AUTH_USER/$PHP_AUTH_PWisinvalid.<P>";
exit;
}
}
if($cancelit)
{
//当浏览者按下"取消"按钮则转向首页面
header("Location:front_2.php3");
exit;
}
functiondo_upload(){
global$userfile,$userfile_size,$userfile_name,$userfile_type;
global$local_file,$error_msg;
global$HTTP_REFERER;
if($userfile=="none"){
$error_msg="Youdidnotspecifyafileforuploading.";
return;
}
if($userfile_size>2000000)
{
$error_msg="Sorry,yourfileistoolarge.";
return;
}
//Whereveryouhavewritepermissionbelow...
$upload_dir="photos";
$local_file="$upload_dir/$userfile_name";
if(file_exists($local_file)){
$error_msg="Sorry,afilewiththatnamealreadyexists";
return;
};
//你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3…
rename($userfile,$local_file);
echo"Thefileisuploaded<BR>
";
echo"<AHREF="$HTTP_REFERER">GoBack</A><BR>
";
}
$title="UploadFile";
include("include/header.inc");
if(empty($userfile)||$userfile=="none")
{
//输出以下表单
?>
<FORMACTION="<?echo"$PHP_SELF";?>"ENCTYPE="multipart/form-data"METHOD=POST>
<INPUTTYPE="HIDDEN"NAME="MAX_FILE_SIZE"VALUE="2000000">
<INPUTTYPE="FILE"NAME="userfile"SIZE="24"MAXLENGTH="80">
<BR><BR>
<INPUTTYPE="SUBMIT"VALUE="UploadFile!"NAME="sendit">
<INPUTTYPE="SUBMIT"VALUE="Cancel"NAME="cancelit"><BR>
</FORM>
<I><FONTSIZE="2">(Youmaynoticeaslightdelaywhileweuploadyourfile.)</FONT></I>
<?
}else{
if($error_msg){echo"<B>$error_msg</B><BR><BR>";}
if($sendit){
do_upload();
}
}
include("include/footer.inc");
?>
照片图库
<?
include("include/common.inc");
$title="Gallery";
include("include/header.inc");
?>
<P>
Herearesomeofourfamilyphotos.ThisPHPscriptcanreally
bemadebetter,bysplittingintomultiplepages.
</P>
<?
$d=dir("photos");
while($entry=$d->read())
{
if(is_file("photos/$entry"))
echo"<IMGSRC="photos/$entry">
";
}
$d->close();
?>
<?
include("include/footer.inc");
?>
另外
,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。