php封裝單文件上傳到數(shù)據(jù)庫(kù)(路徑)
1.首先思考一個(gè)問(wèn)題上傳到數(shù)據(jù)庫(kù)是上傳的圖片還是圖片地址這里我們上傳的是圖片地址,因?yàn)閳D片或音頻存數(shù)據(jù)庫(kù)中過(guò)大,數(shù)據(jù)庫(kù)會(huì)崩掉。
下面是封裝的文件上傳的方法:
<?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){ //第一步 判斷錯(cuò)誤碼 if($_FILES[$key]['error']){ switch($_FILES[$key]['error']){ case 1: $str = "上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。"; break; case 2: $str = "上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。"; break; case 3: $str = "文件只有部分被上傳。"; break; case 4: $str = "沒(méi)有文件被上傳。"; break; case 6: $str = "找不到臨時(shí)文件夾。"; break; case 7: $str = "文件寫(xiě)入失敗"; break; } return [0,$str]; } //判斷文件大小 if($_FILES[$key]['size']>$maxSize){ return [0,'傳的文件超過(guò)最大限制']; } //判斷文件的mime類(lèi)型 if(!in_array($_FILES[$key]['type'],$allowMime)){ return [0,'不符合的mime類(lèi)型']; } //判斷文件的后綴 $info = pathinfo($_FILES[$key]['name']); $sub = $info['extension']; if(!in_array($sub,$allowType)){ return [0,'不符合的文件后綴']; } //判斷是否是隨機(jī)文件 if($ifFileName){ $name = uniqid().'.'.$sub; }else{ $name = $info; } //拼接路徑 $path = rtrim($path,'/').'/'.date('Y/m/d').'/'; //判斷文件是否存在,不存在則創(chuàng)建 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 頁(yè)面
<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、下面我們鏈接數(shù)據(jù)庫(kù)
這里我們直接使用了,看不懂的可以去看前面的封裝的數(shù)據(jù)庫(kù)方法那一篇文章
<?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']); //這里進(jìn)行數(shù)據(jù)庫(kù)操作 if($data[0]){ $date['img_path'] = $data[1]; } insert($link,'user',$date);
總結(jié)
以上所述是小編給大家介紹的php封裝單文件上傳到數(shù)據(jù)庫(kù)(路徑),希望對(duì)大家有所幫助!
- PHP實(shí)現(xiàn)單文件、多個(gè)單文件、多文件上傳函數(shù)的封裝示例
- PHP Laravel 上傳圖片、文件等類(lèi)封裝
- 封裝ThinkPHP的一個(gè)文件上傳方法實(shí)例
- PHP封裝的多文件上傳類(lèi)實(shí)例與用法詳解
- php封裝的單文件(圖片)上傳類(lèi)完整實(shí)例
- PHP實(shí)現(xiàn)原生態(tài)圖片上傳封裝類(lèi)方法
- PHP實(shí)現(xiàn)將上傳圖片自動(dòng)縮放到指定分辨率,并保持清晰度封裝類(lèi)示例
- PHP 一個(gè)比較完善的簡(jiǎn)單文件上傳
- PHP單文件上傳原理及上傳函數(shù)的封裝操作示例
相關(guān)文章
yii2利用自帶UploadedFile實(shí)現(xiàn)上傳圖片的示例
本篇文章主要介紹了yii2利用自帶UploadedFile實(shí)現(xiàn)上傳圖片的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02如何利用http協(xié)議發(fā)布博客園博文評(píng)論
這篇文章主要介紹了利用http協(xié)議發(fā)布博客園博文評(píng)論的方法,首先,大家要明確給博文提交評(píng)論的實(shí)質(zhì)就是通過(guò)http協(xié)議服務(wù)器發(fā)送一個(gè)post請(qǐng)求,需要的朋友可以參考下2015-08-08PHP jQuery+Ajax結(jié)合寫(xiě)批量刪除功能
這篇文章主要介紹了PHP jQuery+Ajax結(jié)合寫(xiě)批量刪除功能的相關(guān)資料,需要的朋友可以參考下2017-05-05PHP實(shí)現(xiàn)頁(yè)面靜態(tài)化深入講解
這篇文章主要介紹了PHP實(shí)現(xiàn)頁(yè)面靜態(tài)化深入講解,本文講解的很透徹,有感興趣的同學(xué)可以研究下2021-03-03對(duì)laravel的session獲取與存取方法詳解
今天小編就為大家分享一篇對(duì)laravel的session獲取與存取方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10thinkphp5引入公共部分header、footer的方法詳解
小編做的項(xiàng)目需要在項(xiàng)目中需要用到引入公共導(dǎo)航、頭部、底部、右邊部分等等,接下來(lái)通過(guò)本文給大家介紹thinkphp5引入公共部分header、footer的方法 ,需要的朋友可以參考下2018-09-09