本节用到的文件操作函数:
1、is_uploaded_file() 函数判断指定的文件是否是通过 HTTP POST 上传的。
2、move_uploaded_file() 函数将上传的文件移动到新位置。
代码如下:
html部分:
php部分:
if(!empty($_FILES['file']['name'])){
//判断文件是否上传成功
if($_FILES['file']['error']>0){
switch($_FILES['file']['error']){
case 1:
$promptMsg = '文件大小超过php.ini限制';
break;
case 2:
$promptMsg = '文件大小超过前台表单设定的大小';
break;
case 3:
$promptMsg = '只上传了文件的一部分';
break;
case 4:
$promptMsg = '没有上传任何文件';
break;
}
echo '
友情提示:
'.$promptMsg.'
';
exit();
}else{
//判断上传文件的类型
$upFileType = array('.jpg','.png','.gif','.bmp');
$fileType = strtolower(strrchr($_FILES['file']['name'],'.'));
if(!in_array($fileType,$upFileType)){
echo '
alert("仅限上传图片文件");history.go(-1);
';
exit();
}
//将上传文件移动到服务器指定文件夹内
$dirName = 'upload/'.date('ymd');
if(!is_dir($dirName)){
mkdir($dirName,0777,1);
}
if(is_uploaded_file($_FILES['file']['tmp_name'])){
//为防止重名,给上传的文件添加时间戳和10-300之间的随机数
$toFileName = $dirName.'/'.time().'_'.mt_rand(10,300).$_FILES['file']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'],$toFileName)){
echo '
alert("文件上传并移动成功");
history.go(-1);
';
}else{
echo '
alert("错误!文件移动失败");
history.go(-1);
';
}
}else{
echo '
alert("不是上传文件");
history.go(-1);
';
}
}
}else{
echo '
alert("请选择上传文件");
history.go(-1);
';
}
下一节是实现多文件上传的方法!