红颜未知己
ok<html>
<head></head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="myfile">上传文件<br />
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
//上传文件思路
//通过$_FILES['name值']来接收文件参数
//取出文件临时文件名 tmp_name
//取出文件后缀 pathinfo(文件名,PATHINFO_EXTENSION);
//创建文件保存的目录
// 1 检查目录是否存在 file_exists(目录名)
// 2如果没有则创建 mkdir(目录名) chmod()改变文件模式
//组合要保存的文件名(包括路径)
// 1采用MD5加密当前时间戳time().'/'.文件后缀名;
// 2直接用文件名保存
//移动文件到指定目录下 move_uploaded_file(移动的文件名,要保存的名字)
//
header('content-type:text/html;charset=utf-8');
$fileInfo=$_FILES['myfile'];
$maxSize=2097152;//允许的最大值
$allowExt=array('jpeg','jpg','png','gif','wbmp');
$flag=true;//检测是否为真实图片类型
//1.判断错误号
if($fileInfo['error']==0){
//判断上传文件的大小
if($fileInfo['size']>$maxSize){
exit('上传文件过大');
}
//$ext=strtolower(end(explode('.',$fileInfo['name'])));
$ext=pathinfo($fileInfo['name'],PATHINFO_EXTENSION);
if(!in_array($ext,$allowExt)){
exit('非法文件类型');
}
//判断文件是否是通过HTTP POST方式上传来的
if(!is_uploaded_file($fileInfo['tmp_name'])){
exit('文件不是通过HTTP POST方式上传来的');
}
//检测是否为真实的图片类型
if($flag){
if(!getimagesize($fileInfo['tmp_name'])){
exit('不是真正图片类型');
}
}
$path='uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}
//确保文件名唯一,防止重名产生覆盖
$uniName=md5(uniqid(microtime(true),true)).'.'.$ext;
//echo $uniName;exit;
$destination=$path.'/'.$uniName;
if(@move_uploaded_file($fileInfo['tmp_name'],$destination)){
echo '文件上传成功';
}else{
echo '文件上传失败';
}
}else{
//匹配错误信息
switch($fileInfo['error']){
case 1:
echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
break;
case 2:
echo '超过了表单MAX_FILE_SIZE限制的大小';
break;
case 3:
echo '文件部分被上传';
break;
case 4:
echo '没有选择上传文件';
break;
case 6:
echo '没有找到临时目录';
break;
case 7:
case 8:
echo '系统错误';
break;
}
}