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類型
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,'不符合的文件后綴'];
}
//判斷是否是隨機(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ì)大家有所幫助!
相關(guān)文章
利用PHP將圖片轉(zhuǎn)換成base64編碼的實(shí)現(xiàn)方法
相信大家都知道Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)代碼的編碼方式之一,如果對(duì)此不清楚的可以查看RFC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。這篇文章我們分享一個(gè)PHP將圖片轉(zhuǎn)換為base64編碼格式的方法,有需要的朋友們可以參考借鑒。2016-09-09
詳解no input file specified 三種解決方法
這篇文章主要介紹了詳解no input file specified 三種解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
PHP兩個(gè)n位的二進(jìn)制整數(shù)相加問(wèn)題的解決
這篇文章主要為大家詳細(xì)介紹了PHP兩個(gè)n位的二進(jìn)制整數(shù)相加問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(三)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀的用戶注冊(cè)頁(yè)面,需要的朋友可以參考下2014-06-06
CodeIgniter記錄錯(cuò)誤日志的方法全面總結(jié)
這篇文章主要介紹了CodeIgniter記錄錯(cuò)誤日志的方法,詳細(xì)分析了CodeIgniter框架的文件結(jié)構(gòu)與相應(yīng)的功能,結(jié)合實(shí)例分析了CodeIgniter框架記錄錯(cuò)誤日志的實(shí)現(xiàn)技巧,并分析了隱藏index文件與數(shù)據(jù)傳輸?shù)燃记?總結(jié)非常全面,需要的朋友可以參考下2016-05-05
PHP調(diào)用C#開(kāi)發(fā)的dll類庫(kù)方法
這篇文章主要介紹了PHP調(diào)用C#開(kāi)發(fā)的dll類庫(kù)方法,包含一個(gè)完整的詳細(xì)的DLL制作步驟和PHP調(diào)用方法,需要的朋友可以參考下2014-07-07
Laravel框架環(huán)境與配置操作實(shí)例分析
這篇文章主要介紹了Laravel框架環(huán)境與配置操作,結(jié)合實(shí)例形式分析了laravel框架基本環(huán)境配置方法及維護(hù)模式相關(guān)操作技巧,需要的朋友可以參考下2019-12-12

