php實現封裝單檔案上傳到資料庫的執行個體

來源:互聯網
上載者:User
這篇文章主要介紹了php封裝單檔案上傳到資料庫(路徑) 的相關資料,需要的朋友可以參考下

1.首先思考一個問題上傳到資料庫是上傳的圖片還是圖片地址這裡我們上傳的是圖片地址,因為圖片或音頻存資料庫中過大,資料庫會崩掉。

下面是封裝的檔案上傳的方法:


<?php/**@prame string key*@prame string path*@prame String maxSize*@prame array allowMime*@prame array allowFiletype*@prame bool true**auther wulei*/function upload($key,$path,$maxSize,$allowMime,$allowType,$ifFileName = true){  //第一步 判斷錯誤碼  if($_FILES[$key]['error']){    switch($_FILES[$key]['error']){      case 1:        $str = "上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值。";        break;      case 2:        $str = "上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。";        break;      case 3:        $str = "檔案只有部分被上傳。";        break;      case 4:        $str = "沒有檔案被上傳。";        break;      case 6:        $str = "找不到臨時檔案夾。";        break;      case 7:        $str = "檔案寫入失敗";        break;    }    return [0,$str];  }  //判斷檔案大小  if($_FILES[$key]['size']>$maxSize){    return [0,'傳的檔案超過最大限制'];  }  //判斷檔案的mime類型  if(!in_array($_FILES[$key]['type'],$allowMime)){    return [0,'不符合的mime類型'];  }  //判斷檔案的尾碼  $info = pathinfo($_FILES[$key]['name']);  $sub = $info['extension'];  if(!in_array($sub,$allowType)){    return [0,'不符合的檔案尾碼'];  }  //判斷是否是隨機檔案  if($ifFileName){    $name = uniqid().'.'.$sub;  }else{    $name = $info;  }  //拼接路徑  $path = rtrim($path,'/').'/'.date('Y/m/d').'/';  //判斷檔案是否存在,不存在則建立  if(!file_exists($path)){    mkdir($path,0777,true);  }  //判斷是否是上傳檔案  if(is_uploaded_file($_FILES[$key]['tmp_name'])){    if(move_uploaded_file($_FILES[$key]['tmp_name'],$path.$name)){      echo '檔案上傳成功';      return [1,$path.$name];    }else{      return[0,'上傳檔案失敗'];    }  }else{    return [0,'檔案不存在'];  }  }

2.html 頁面


<html><head>  <title>檔案上傳</title>  <meta charset = "utf-8"/></head><body>  <form action = "onUpload.php" method = "post" enctype ="multipart/form-data">    <!--<input type = "text" name = "username"/><br/>-->    <input type = "file" name = "file"/><br/>    <input type = "submit" value ="提交"/>  </form></body>

3、下面我們連結資料庫

這裡我們直接使用了,看不懂的可以去看前面的封裝的資料庫方法那一篇文章


<?php  //包含方法  include 'uploed.php';  include 'common.php';  //得到方法  $data = upload('file','image',pow(1024,2)*2,[        'image/png','image/jpeg','image/gif','image/wbmp'      ],['png','jpg','jpeg','jpe','pjpeg','gif','wbmp','bmp']);  //這裡進行資料庫操作  if($data[0]){    $date['img_path'] = $data[1];  }  insert($link,'user',$date);

總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.