PHP開發企業網站教學之添加產品

我們來看看新增頁面的程式碼:

<!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>";
    }
?>

這裡面就對上傳的文件進行了處理,然後再去添加,如果上傳的不是合法文件,就會提示錯誤訊息

繼續學習
||
<!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>