1.在前端页面中
<form action="doAction.php" method="POST" enctype="multipart/form-data">
文件上传<input type="file" name="myFile">
<input type="submit" value="文件上传">
</form>
2单文件上传
$filename=$_FILES['myFile']['filename'];
$error=$_FILES['myFile']['error'];
$size=$_FILES['myFile']['size'];
$tmp_name=$_FILES['myFile']['tmp_name'];
$type=$_FILES['myFile']['type'];
//判断错误信息
if($error==UPLOAD_ERR_OK){
$ext=pathinfo($filename,PATHINFO_EXTENSION);
$filename=md5(uniqid(microtime(true),true)),".".$ext;
$destination="uploads/.$filename";
if(is_uploaded_file($tmp_name)){
if(move_uploaded_file($tmp_name,$destination){
echo "<script>alert('文件上传成功');</script>";
}else{
echo "</script>alert(‘文件上传失败');</script>";
}
}else{
echo "<script>alert('文件不是通过HTTP POST方式上传上来的');</script>";
}
}else{
switch($error){
case 1:
echo "超过了配置文件的大小";
break;
case 2:
echo "超过了表单提交的大小";
break;
case 3:
echo "文件部分被上传";
break;
case 4:
echo "没有文件被上传";
break;
case 6:
echo "没有找到临时目录";
break;
case 7:
echo "文件不可以读";
break;
case 8:
echo "由于php文件扩展中断了传输";
break;
}
}
总结:
1.在客户端,要想上传文件,有俩个要素 enctypoe="multipart/form-data"指定文件上传的编码方式
第二个是method="post"说明文件上传必须问post方式
2.在 服务器端对上传的文件进行处理
1.$_FILES;提交的表单,会把表单提交的信息保存在一个二维数组中,有5个变量,filename上传文件的名称,error上传文件的错误号,tmp_name文件上传时所在的服务器的
临时文件夹。size表示上传文件的大小,type表示文件上传的类型
上传文件后台处理时,先判断错误号,
case1 :表示上传文件超过了配置文件的大小,此配置文件在php.ini中默认的设置好的upload_max_filesize=2M表示文件上传的最大大小为2M;file_upload=on表示支持post的方式。
case2:表示上传文件超过表单提交文件的大小
case3;表示上传文件部分被上传
case4;表示文件没有被上传
case6:表示没有找到临时目录
case7:表示文件不可写
case8表示有与php的扩展中断了文件的传输
取文件的后缀名:
1$ext=pathinfo($filename,PATHINFO_EXTENSION)
2$ext=end(explode(".",$filename));其中explode(".",$filename)表示已.分割,返回数组array(0=>"index",1=>"png")参考;
end()方法返回数组中内部指针指向最后一个单元的值
3$ext=substr(strrchr($fliename,".),1)其中strrchr($filename,".")表示返回字符串中出现.位置开始,直到字符串结束,如果是index.png返回.png。substr(".png",1);表示从字符串的第一个位置开始截取,然后 就从.开始截取到结束为止,因此返回png;
后面朋友有更多获取文件后缀名的方法可以再我后面留言,大家一起交流,学习,谢谢大家,文章有什么不对的地方,还希望大家给与纠正,谢谢。