7.4 自定义函数综合示例
文件上传、下载和数据库连接等功能是目前WEB应用系统的常用功能,可以将这些常用的功能封装成一个函数,方便代码的移植、重用和维护。这里先制作一个实现文件上传功能的upload()函数。在“C:\wamp\www\7\functions”目录下创建fileSystem.php文件,并在该文件中输入下面的代码。
<?php
function upload($file,$filePath){
$error = $file['error'];
switch ($error){
case 0:
$fileName = $file['name'];
$fileTemp = $file['tmp_name'];
$destination = $filePath."/".$fileName;
move_uploaded_file($fileTemp,$destination);
return "文件上传成功!";
case 1:
return "上传附件超过了php.ini中upload_max_filesize选项限制的值!";
case 2:
return "上传附件的大小超过了form表单MAX_FILE_SIZE选项指定的值!";
case 3:
return "附件只有部分被上传!";
case 4:
return "没有选择上传附件!";
}
}
?>
程序中定义了upload()函数,该函数的语法格式为:string upload(array $file,string $filePath)。
upload()函数功能:将FORM表单中选择的上传文件$file上传到目录$filePath下。
upload()函数说明:在使用upload()函数前,须手工创建目录$filePath。
需要实现文件上传功能时,只需要声明upload()函数、调用upload()函数即可。例如使用upload()函数重构“PHP的数据采集”章节中register.php的代码。
( 1 )将“PHP 的数据采集”章节中的 register.html 程序和 register.php 程序复制到目录“C:\wamp\www\7”下,并在目录“C:\wamp\www\7”下创建“uploads”目录存放所有上传文件。
(2)将register.php程序修改为如下代码(粗体字部分为代码的改动部分,其他代码不变)。
<?php
include_once("functions/fileSystem.php");
if(empty($_POST)){
exit("您提交的表单数据超过post_max_size的配置!<br/>");
}
echo "您填写的用户名为:".$_POST['userName'];
……
foreach($_POST['interests'] as $interest){
echo $interest." ";
}
echo "<br/>";
$message = upload($_FILES['myPicture'],"uploads");
echo $message;
echo "<br/>";
echo "上传相片的文件大小不能超过:".$_POST['MAX_FILE_SIZE']."字节";
……
echo isset($_POST['submit1'])?"普通提交按钮":"图像提交按钮";
?>
可以看到使用upload()函数后,程序register.php代码明显简化,并方便了代码的移植、重用和维护。upload()函数只能实现单一文件的上传功能,感兴趣的读者可以完成多文件上传功能的函数。
共有条评论 网友评论