當前位置:首頁 » 文件傳輸 » php如何上傳文件夾
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

php如何上傳文件夾

發布時間: 2022-09-27 13:12:14

⑴ 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中如何上傳整個文件夾里的所有文件

相當於多文件上傳!只有用插件!我現在用的是swfupload這個插件!還不錯!

⑶ php 如何上傳圖片到我指定的文件夾.

使用這個函數move_uploaded_file ($filename,$path);使用範例: if(!empty($_FILES["magfile"])) {
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/uploads/";
$uploaddir.="test.jpg";
if(move_uploaded_file($_FILES["magfile"]["tmp_name"], $uploaddir)) {
echo "上傳成功!";
}else{
print_r($_FILES);
}
}第一個參數是上傳到伺服器臨時文件夾的絕對路徑,$_FILES['文件域名稱']['tmp_name']第二個參數是需要放到伺服器上的絕對路徑+文件名。覺得好請採納~

⑷ 怎麼通過HTML+PHP上傳文件到伺服器

HTML代碼:


<body>

<form action="" method="post" enctype="multipart/form-data" name="upload_form">

<label>選擇圖片文件</label>

<input name="imgfile" type="file" accept="image/gif, image/jpeg"/>

<input name="upload" type="submit" value="上傳" />

</form>

</body>


PHP代碼:


if (isset($_FILES['imgfile'])

&& is_uploaded_file($_FILES['imgfile']['tmp_name']))

{

$imgFile = $_FILES['imgfile'];

$upErr = $imgFile['error'];

if ($upErr == 0)

{

$imgType = $imgFile['type']; //文件類型。

/* 判斷文件類型,這個例子里僅支持jpg和gif類型的圖片文件。*/

if ($imgType == 'image/jpeg'

|| $imgType == 'image/gif')

{

$imgFileName = $imgFile['name'];

$imgSize = $imgFile['size'];

$imgTmpFile = $imgFile['tmp_name'];

/*

將文件從臨時文件夾移到上傳文件夾中。

注意:upfile這個文件夾必須先創建好,不然會報錯。

*/

move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);

/*顯示上傳後的文件的信息。*/

$strPrompt = sprintf("文件%s上傳成功<br>"

. "文件大小: %s位元組<br>"

. "<img src='upfile/%s'>"

, $imgFileName, $imgSize, $imgFileName

);

echo $strPrompt;

}

else

{

echo "請選擇jpg或gif文件,不支持其它類型的文件。";

}

}

else

{

echo "文件上傳失敗。<br>";

switch ($upErr)

{

case 1:

echo "超過了php.ini中設置的上傳文件大小。";

break;

case 2:

echo "超過了MAX_FILE_SIZE選項指定的文件大小。";

break;

case 3:

echo "文件只有部分被上傳。";

break;

case 4:

echo "文件未被上傳。";

break;

case 5:

echo "上傳文件大小為0";

break;

}

}

}

else

{

}


⑸ 如何在php上實現文件上傳功能

PHP 一般使用 POST 方法上傳文件,下面是一個簡單的文件上傳示例,裡面有相關的注釋:
up.htm 文件:
----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Up Sample</title>
</head>
<body>
<form action="up.php" method="post" enctype="multipart/form-data">
<!--備注:表單中 enctype="multipart/form-data " 的意思,是設置表單的 MIME 編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了 multipart/form-data ,才能完整的傳遞文件數據,進行下面的操作,並且 method 要設置為 "post"-->
File:<br />
<input type="file" name="upfile" size="30"><br />

<!--上傳框要設置 type="file"-->

<br />
<input type="submit" value="Upload">
</form>
</body>
</html>
----------
up.php 文件
----------
<?php
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])){

//如果有文件上傳
//is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的,返回布爾值
//$_FILES['upfilename']['...'],其中的 'upfilename' 即為上傳框的 name 屬性
//$_FILES['upfile']['tmp_name'] -- 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認
if(!eregi('pdf', $_FILES['upfile']['type'])){

//我們這里假設你要上傳一個 pdf 文件
//if(!eregi('pdf', $_FILES['upfile']['type'])) 這個是判斷上傳文件類型的,是不是 pdf 文件,當然,若是想判斷是否是 jpg 文件的話,將 pdf 改成 jpg 就可以了,即 if(!eregi('jpg', $_FILES['upfile']['type']))
//$_FILES['upfile']['type'] 是文件的 MIME 類型,如果瀏覽器提供此信息的話。例如「image/gif」
echo 'The uploaded file is not an pdf File! Please upload a right file!';
}else{
$filename = $_FILES['upfile']['name'];
//$filename = $_FILES['upfile']['name'],這里是指定上傳後的文件名,這里使用的仍是原來的文件名字,($_FILES['upfile']['name'] 是原始文件的名字)
if(move_uploaded_file($_FILES["upfile"]["tmp_name"], dirname(__FILE__)."/upload_file/".$filename)){

//這里就是上傳文件
//dirname(__FILE__)."/upload_file/".$file_name -- 指定上傳的目標文件,假設你要上傳的目標文件夾upload_file 是和當前文件(upload.php)在同一文件夾下
//chmod(dirname(__FILE__)."/upload_file/". $file_name, 0444);
//上面注釋掉的是用來改變上傳後文件的屬性,444 即只有執行和讀的許可權(看情況加上)
echo $_FILES["upfile"]["name"] . " uploaded succeed!!!";

}else{
echo "Can't upload!!!";
}
}
}else{
echo "File is not selected";
}
//需要注意的:
/*
在你的 up.php 同級目錄下建立 upload_file 文件夾,來存放上傳的文件
在上傳之前要看一下 php 的配置文件:php.ini 中的三處設置
1.是否允許文件上傳:( file_uploads = On )
2.文件上傳的最大 size:( upload_max_filesize )
3.post 的最大 size ( post_max_size ) 這個大小設置成和 uplod_max_filesize 一樣大或比 uplod_max_filesize 大
*/
/*
這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用 if 語句來判斷上傳文件的大小($_FILES['upfile']['type'])),並進行提示控制等,相關可以查閱 $_FILE['upfile'] 數組的各個值分別代表什麼
*/
?>

⑹ php同時上傳多個文件或者整個文件夾怎麼實現,最好發個demo,求大俠們幫助下

您好,這樣的:
純web無解,最少需要客戶端裝控制項,
php將本地文件夾上傳的其他伺服器倒是可以。
方法一:把文件夾打包成zip上傳然後伺服器端解壓,調用/內建的解壓程序解壓然後刪除zip文件。
方法二:做個遍歷循環判斷,遇到目錄的就利用mkdir創建目錄,遇到文件的就用ftp傳上到伺服器。