我们来看一下添加页面的代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>添加产品</title> <style type="text/css"> #cnt{ width:400px; height:400px; margin-top:15px; margin-left: 15px; } </style> </head> <body> <div id="cnt"> <form method="post" action="addproduct.php" enctype="multipart/form-data"> 产品名称:<input type="text" name="title" id="title"></br></br> 上传文件:<input type="file" name="myFile"></br></br> 产品价格:<input type="text" name="price"></br></br> <input type="submit" value="添加产品"> </form> </div> </body> </html>
添加这块没什么,主要是html 的代码 注意上传文件,我们需要在表单中写上enctype="multipart/form-data"
这个是上传文件必须要的一句代码
表单提交到addproduct.php页面
我们来看下这个页面
<?php require_once('conn.php'); //接受文件,临时文件信息 $fileinfo=$_FILES["myFile"];//降维操作 $filename=$fileinfo["name"]; $tmp_name=$fileinfo["tmp_name"]; $size=$fileinfo["size"]; $error=$fileinfo["error"]; $type=$fileinfo["type"]; //服务器端设定限制 $maxsize=10485760;//10M,10*1024*1024 $allowExt=array('jpeg','jpg','png','gif');//允许上传的文件类型(拓展名 $ext=pathinfo($filename,PATHINFO_EXTENSION);//提取上传文件的拓展名 //目标存放文件夹 $path="../uploads"; if (!file_exists($path)) { //当目录不存在,就创建目录 mkdir($path,0777,true);//创建目录 chmod($path, 0777);//改变文件模式,所有人都有执行权限、写权限、度权限 } //得到唯一的文件名!防止因为文件名相同而产生覆盖 $uniName=md5(uniqid(microtime(true),true)).".$ext"; //md5加密,uniqid产生唯一id,microtime做前缀 //目标存放文件地址 $destination=$path."/".$uniName; //当文件上传成功,存入临时文件夹,服务器端开始判断 if ($error==0) { if ($size>$maxsize) { exit("上传文件过大!"); } if (!in_array($ext, $allowExt)) { exit("非法文件类型"); } if (!is_uploaded_file($tmp_name)) { exit("上传方式有误,请使用post方式"); } //判断是否为真实图片(防止伪装成图片的病毒一类的 if (!getimagesize($tmp_name)) {//getimagesize真实返回数组,否则返回false exit("不是真正的图片类型"); } //move_uploaded_file($tmp_name, "uploads/".$filename); if (@move_uploaded_file($tmp_name, $destination)) {//@错误抑制符,不让用户看到警告 echo "文件".$filename."上传成功!"; }else{ echo "文件".$filename."上传失败!"; } }else{ switch ($error){ case 1:echo "超过了上传文件的最大值,请上传2M以下文件";break; case 2:echo "上传文件过多,请一次上传20个及以下文件!";break; case 3:echo "文件并未完全上传,请再次尝试!";break; case 4:echo "未选择上传文件!";break; case 7:echo "没有临时文件夹";break; } } $title = $_POST['title']; $imagename = $uniName; $price = $_POST['price']; $goodtime = time(); $sql = "insert into `product`(title,imgname,price,goodtime) values('$title','$imagename','$price','$goodtime')"; $res = mysql_query($sql); if($res){ echo "<script>alert('添加产品成功');location.href='product.php';</script>"; }else{ echo "<script>alert('添加产品失败');location.href='product.php';</script>"; } ?>
这里面就对上传的文件进行了处理,然后再去添加,如果上传的不是合法文件,就会提示错误信息