?php
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務金沙,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
if ($_FILES["file"]["error"] 0)
{
echo "錯誤: " . $_FILES["file"]["error"] . "br /";
}
else
{
echo "存儲位置: " . $_FILES["file"]["tmp_name"];
}
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " 文件已經(jīng)存在. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]); //這句是把 上傳在 tmp中的文件移動到你指定的地方
//"upload/" . $_FILES["file"]["name"]);也就是你想要把這個路徑存到數(shù)據(jù)庫中
// 可以用 getcwd()來獲得當前文件夾的路徑,全加進來的話,存入MYSQL要
//經(jīng)過轉(zhuǎn)特殊字符轉(zhuǎn)換。否則像 \ 這樣的字符會不見了。
echo "文件已經(jīng)被存儲到: " . "upload/" . $_FILES["file"]["name"];
$pt=getcwd(). "/upload/" . $_FILES["file"]["name"]; // 這里就是你設置傳入數(shù)據(jù)庫的路徑
mysql_connect("localhost","root","root") or die ("不能連到MYSQL");
mysql_select_db("book") or die ("不能連到數(shù)據(jù)庫"); //這里假設是在 book 里的d 表只有一
//項,實際情況你自己改SQL語句啊
$sql="insert into d values(
'$pt' );";
mysql_query($sql);
}
?
關鍵應該是把上傳文件從默認的 windows/temp 中移動到你指定的文件夾中
//?獲取文件名
$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);?//插入新紀錄
當你問到這個問題的時候,其實我是不想回答的
你應該是個小白,因為 “文件地址”這個其實就是一個URL,就是一個字符串。把“
文件地址上傳到數(shù)據(jù)庫”,其實就是把一個字符串插入到相應的表。如果你有基礎,文件都上傳了獲取到路徑了,就等插入數(shù)據(jù)庫,根本不會來問這個問題。如果你沒基礎,那不是我在這里三言兩語甚至長篇大論能教會你的。
我只能大概說一下思路:
1、首先,建表,數(shù)據(jù)庫新建一個表來存放這個文件地址
2、鏈接這個數(shù)據(jù)庫
3、把這個“文件地址”,插到數(shù)據(jù)庫里面
完了!
define(UPLOAD_ROOT,'你的上傳文件夾路徑');
function fake_random_name($string,$key){
#偽代碼 隨便根據(jù)用戶名和上傳時間生成一個偽隨機的文件名作為上傳以后的用戶名
#但解碼的條件是可以根據(jù)文件名判斷出文件所有者的用戶名和上傳時間
#需要從數(shù)據(jù)庫取出用戶的密匙 才能進行解密 密匙是用戶名的前5個字符
#具體加密解密的代碼實現(xiàn) 請參照PHP標準擴展庫 Mcrypt擴展下的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過來的表單名']['tmp_name'];
/*
* 這個方法會自動調(diào)用is_upload_file()方法 檢測是否是合法的http rfc1867協(xié)議上傳的文件
* 當然了 你也可以限制是否是你需要的合法文件類型 $_FILE[$_POST[name]][type] 比如是否是pdf img文件 都可以
*/
$dbh = new mysqli('localhost','root','sa','your_db_name');#生成中可以include進來 DSN放到根目錄以外去 保護連接文件
$sec_key = substr($_SESSION['loginname'],0,5);
#密匙
$file_name = fake_random_name($_FILES['POST過來的表單名']['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ù)庫文件細節(jié)(加密)";
}
PHP code你看這個行不行不行去這里()
$a=File_Get_Contents('./a.txt');
$PDO=New PDO('mysql:host=localhost;dbname=數(shù)據(jù)庫名','用戶名','密碼') Or Die('Can not open the database!');
//添加
//IF($PDO-Exec("INSERT INTO (name,content) values ('".$."','".$."')")) {
IF($PDO-Exec("INSERT INTO `{$Table}` SET 列='{$a}'")) {
Echo $PDO-lastInsertId();
}
把reg.php中的第6行$photo=$_POST['photo'];改成$photo=$_FILES['photo']['tmp_name'];就好了!
當文件上傳時,該文件將保存在Web服務器上的臨時目錄中,這是WEB服務器默認的臨時目錄。如果在腳本執(zhí)行完成之前不移動、復制或更改文件名稱,該文件將被刪除。
在PHP腳本中,需要處理的數(shù)據(jù)保存在超級全局數(shù)組$_FILES中。
$_FILES['formname']['tmp_name']:文件在WEB服務器中臨時存儲的位置
$_FILES['formname']['name']:用戶系統(tǒng)中的原文件名稱
$_FILES['formname']['size']:文件的字節(jié)大小
$_FILES['formname']['type']:文件的MIME類型,例如:text/plain或image/gif
$_FILES['formname']['error']:任何與文件上傳相關的錯誤代碼
注:formname就是input type="file" name="photo"的name值,在PHP腳本中你可以嘗試用print_r($_FILES['formname']);顯示相關數(shù)值!
你可以嘗試用以下代碼,完整的代碼應該增加限制上傳文件大?。。。?/p>
input.html文件:
html
body
form name="msgform" method="post" action="reg.php" enctype='multipart/form-data'
input type="file" name="photo"br
input type="submit" value="上傳"
/form
/body
/html
reg.php文件:
?php
$conn=mysql_connect("localhost","user","password")
or die("不能連接數(shù)據(jù)庫服務器:".mysql_error());
mysql_select_db("database",$conn) or die("不能選擇數(shù)據(jù)庫:".mysql_error());
//print_r($_FILES['photo']);//測試時使用
if($_FILES['photo']['error']0){
$name=$_FILES['photo']['name'];//直接用原文件名稱存入數(shù)據(jù)庫比較方便使用
$photo=$_FILES['photo']['tmp_name'];
$fp=fopen($photo,"r");
$data=addslashes(fread($fp,filesize('$photo')));
$sql="insert into tablename (name,photo) values('$name','$photo');
mysql_query($sql,$conn) or die("插入數(shù)據(jù)失?。?.mysql_error());
mysql_close($conn);
echo "上傳成功";
}else{
echo "上傳出錯";
}//From J.L
?