當(dāng)你問(wèn)到這個(gè)問(wèn)題的時(shí)候,其實(shí)我是不想回答的
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為花溪企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),花溪網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
你應(yīng)該是個(gè)小白,因?yàn)?“文件地址”這個(gè)其實(shí)就是一個(gè)URL,就是一個(gè)字符串。把“
文件地址上傳到數(shù)據(jù)庫(kù)”,其實(shí)就是把一個(gè)字符串插入到相應(yīng)的表。如果你有基礎(chǔ),文件都上傳了獲取到路徑了,就等插入數(shù)據(jù)庫(kù),根本不會(huì)來(lái)問(wèn)這個(gè)問(wèn)題。如果你沒(méi)基礎(chǔ),那不是我在這里三言兩語(yǔ)甚至長(zhǎng)篇大論能教會(huì)你的。
我只能大概說(shuō)一下思路:
1、首先,建表,數(shù)據(jù)庫(kù)新建一個(gè)表來(lái)存放這個(gè)文件地址
2、鏈接這個(gè)數(shù)據(jù)庫(kù)
3、把這個(gè)“文件地址”,插到數(shù)據(jù)庫(kù)里面
完了!
//?獲取文件名
$filename=$_FILES["fileToUpload"]["name"].'.'$_FILES["fileToUpload"]["tmp_name"]
$mysqli?=?new??mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if?(mysqli_connect_errno()){?//注意mysqli_connect_error()新特性
die('Unable?to?connect!').?mysqli_connect_error();
}
$sql?=?"SET?NAMES?".$charName;
$mysqli-query($sql);
$sql="?insert?into?tbname?(filenane)??values?('".$filename."')";
$mysqli-query($sql);?//插入新紀(jì)錄
//?獲取文件名
$filename=$_FILES["fileToUpload"]["name"].'.'$_FILES["fileToUpload"]["tmp_name"];
$mysqli?=?new??mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if?(mysqli_connect_errno()){?//注意mysqli_connect_error()新特性
die('Unable?to?connect!').?mysqli_connect_error();
}
$sql?=?"SET?NAMES?".$charName;
$mysqli-query($sql);
$sql="?insert?into?tbname?(filenane)??values?('".$filename."')";
$mysqli-query($sql);?//插入新紀(jì)錄
define(UPLOAD_ROOT,'你的上傳文件夾路徑');
function fake_random_name($string,$key){
#偽代碼 隨便根據(jù)用戶名和上傳時(shí)間生成一個(gè)偽隨機(jī)的文件名作為上傳以后的用戶名
#但解碼的條件是可以根據(jù)文件名判斷出文件所有者的用戶名和上傳時(shí)間
#需要從數(shù)據(jù)庫(kù)取出用戶的密匙 才能進(jìn)行解密 密匙是用戶名的前5個(gè)字符
#具體加密解密的代碼實(shí)現(xiàn) 請(qǐng)參照PHP標(biāo)準(zhǔn)擴(kuò)展庫(kù) Mcrypt擴(kuò)展下的N種方法
return $fake_random_name;
}
if(!is_writbale(UPLOAD_ROOT)){
die('you need chown the dir for your uploading file,make it writable~');
}else{
move_uploaded_file($_FILES['POST過(guò)來(lái)的表單名']['tmp_name'];
/*
* 這個(gè)方法會(huì)自動(dòng)調(diào)用is_upload_file()方法 檢測(cè)是否是合法的http rfc1867協(xié)議上傳的文件
* 當(dāng)然了 你也可以限制是否是你需要的合法文件類型 $_FILE[$_POST[name]][type] 比如是否是pdf img文件 都可以
*/
$dbh = new mysqli('localhost','root','sa','your_db_name');#生成中可以include進(jìn)來(lái) DSN放到根目錄以外去 保護(hù)連接文件
$sec_key = substr($_SESSION['loginname'],0,5);
#密匙
$file_name = fake_random_name($_FILES['POST過(guò)來(lái)的表單名']['tmp_name'],$sec_key);
#加密后的名字
$q_str = "insert into tb(owner,location)values($_SEESION['loginname'],UPLOAD_ROOT.DIRECTORYSLASH.$file_name))";/SQL
$dbh-query($q_str);
if($dbh-num_rows()==1) echo "上傳成功,已經(jīng)插入數(shù)據(jù)庫(kù)文件細(xì)節(jié)(加密)";
}