⑴ PHP如何上傳1G以上的文件
壓縮成好幾個包,分開上傳即可。大文件這樣處理,不用改參數配置和額外寫程序。
⑵ php實現文件上傳到指定文件夾,文件路徑或名字存入資料庫,如何實現啊
define(UPLOAD_ROOT,'你的上傳文件夾路徑');
function fake_random_name($string,$key){
#偽代碼 隨便根據用戶名和上傳時間生成一個偽隨機的文件名作為上傳以後的用戶名
#但解碼的條件是可以根據文件名判斷出文件所有者的用戶名和上傳時間
#需要從資料庫取出用戶的密匙 才能進行解密 密匙是用戶名的前5個字元
#具體加密解密的代碼實現 請參照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'];
/*
* 這個方法會自動調用is_upload_file()方法 檢測是否是合法的http rfc1867協議上傳的文件
* 當然了 你也可以限制是否是你需要的合法文件類型 $_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 "上傳成功,已經插入資料庫文件細節(加密)";
}
⑶ 求PHP上傳文件夾的三種解決方案
1 壓縮上傳(用戶把文件夾壓縮後上傳),
2 input里加這個屬性webkitdirectory就是默認可以上傳文件夾了。谷歌瀏覽器可以。其他瀏覽器好像不行
3 業務上進行優化 如:(上傳時還是上傳文件,但是需要填寫文件夾得名稱,上傳之後,後台根據文件夾名稱,自動創建文件夾)