PHP学习之图片文件上传

        在网站个人资料修改中我们常见的就有上传头像,证件照,或其他的压缩文件等,本文章介绍的就是php中常见的图片上传,那么需要上传其他格式类型的文件,也可以仿照,只是格式判断需要修改,过程其实简单,如果要涉及到上传进度条,那么可以通过js的setTimeout(),定时执行ajax来获取文件上传进度,在这里就不再介绍相关的知识,后期文章将会做详细的介绍!

 

 

首先创建form表单文件
<form action="filUp.php" enctype="multipart/form-data" method="post">上传文件:
<input name="upfile" type="file" />
<input name="send" type="submit" /></form>

注意:input标签中的name名要与下面$_FILES[” “]中的名一致

新建php文件名为:filUp.php具体上传处理流程代码
//首先判断用户是否上传文件
if(isset($_POST['upfile'])){
//如果上传开始处理上传文件
if($_FILES["upfile"]["error"] == 4){
echo "<script>alert('请选择图片上传!');history.go(-1); </script>";return;
};
//有效图片判断
if($_FILES["upfile"]["size"]&lt;1024){
echo "<script>alert('请选择一张有效图片上传!');history.go(-1); </script>";return;
}
//超过限定大小判断
if($_FILES["upfile"]["size"]&gt;2048*1024){
echo "<script>alert('上传的图片超过限定大小!');history.go(-1); </script>";return;
}
$fileType=null;
switch($_FILES["upfile"]["type"]){ //上传的文件进行图片类型判定 ,并将后缀储存,用于重命名
case 'image/jpg':
case 'image/jpeg':
case 'image/pjpeg':
$fileType=".jpg";
break;
case 'image/png':
case 'image/x-png':
$fileType=".png";
break;
case 'image/gif':
$fileType=".gif";
break;
case 'image/bmp':
$fileType=".bmp";
break;

};
//判断是否是规定的图片文件
if($fileType==null){
echo "<script>alert('请上传规定格式的图片文件!');history.go(-1); </script>";return;
};
//判断储存图片的文件夹是否存在,不存在则创建
$dir = "uploadFile/";
if(file_exists($dir) == false){
mkdir($dir);
}
//生成一个不重复的文件名 使用当前的年月日时分秒作为图片文件名
$fileName = date("YmdHis").$fileType;
//移动文件
move_uploaded_file($_FILES["upfile"]["tmp_name"],$dir.$fileName);
//文件上传完成,将图片文件名存入数据库
}else{ $fileName=null;};
需要了解的知识是$_FILES (二维数组),下标为”name”、”type”、”size”、”tmp_name” 或 “error”。如下所示:
  • $_FILES[“file”][“name”] – 上传文件的名称
  • $_FILES[“file”][“type”] – 上传文件的类型
  • $_FILES[“file”][“size”] – 上传文件的大小,以字节计
  • $_FILES[“file”][“tmp_name”] – 存储在服务器的文件的临时副本的名称
  • $_FILES[“file”][“error”] – 由文件上传导致的错误代码

 

属性值 描述
multipart/form-data 不对字符编码。当使用有文件上传控件的表单时,该值是必需的。
文件上传$_FILES为空值得注意的常见错误:
  1. 在form标签中忘记加enctype=”multipart/form-data”属性;
  2. 忘记在php.ini配置文件中打开文件上传的功能file_uploads=on(该项意为配置是否允许上传文件。如果设置为off则不允许上传文件所以就接收不到$_FILES的值,)
非著名均为来自网络,不代表一点新作立场,若为著名原创,转载请注明出处:http://ydxinzuo.cn/archives/803

作者: xinyuan7630

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

在线咨询: QQ交谈

邮箱: 303817524@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部