當前位置:首頁 » 文件管理 » php怎麼上傳文件

php怎麼上傳文件

發布時間: 2023-05-20 04:23:26

1. php如何上傳文件

$f_type=strtolower("swf,rar,jpg,zip,7z,iso,gif,exe,rmvb");//設置可上傳的文件類型

if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 20000 * 1024 * 1024) )
{
$error = 'Please upload only files smaller than 2Mb!';
}
$f_name=$_FILES['photoupload']['name'];
$tmp_type=substr(strrchr($f_name,"."),1);//獲取文件擴展名
$tmp_type=strtolower($tmp_type);
if(!stristr($f_type,$tmp_type)){
$error="對不起,不能上傳格式為:".$tmp_type."的文件:".$f_name;

}
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $uploadfile)){
$result['result'] = 'success';
$result['size'] =$f_name."文件上傳成功";
}
else{
$result['result'] = 'failed';
$result['error'] =$f_name."上傳失敗";
}

2. php如何實現文件上傳

所謂上傳就是把文件從你電腦本地復制到你的項目指定文件夾下。
但這有個中間過程,就是復制到系統指定的臨時文件夾生成臨時文件。
然後將臨時文件復制到你指定的文件夾下。
剩下的就是各種驗證了。
給你個圖片上傳方法
//上傳一張圖片
$pic = $_FILES['pic'];
function upload($pic){
$tmp_name = $pic['tmp_name'];
$name = $pic['name'];
$type = $pic['type'];
$size = $pic['size'];
if(!is_uploaded_file($tmp_name)) exit('不是上傳文件');
//判斷是否是圖片
$mine = array('image/png','image/jpg','image/gif','image/jpeg');
if(!in_array($type,$mine)) exit('圖片格式不正確');
//判斷是否有錯誤碼
$error = $pic['error'];
switch ($error) {
case 1:
exit("超出上傳文件的最大限制");
case 2:
exit("超出了指定的文件大小");
case 3:
exit("只有部分文件被上傳");
case 4:
exit("文件沒有被上傳");
case 6:
exit("找不到臨時文件夾");
case 7:
exit("文件寫入失敗");

}
echo "================<br/>";
echo "上傳文件名稱是:".$name."<br/>";
echo "上傳文件類型是:".$type."<br/>";
echo "上傳文件大小是:".$size."<br/>";
echo "上傳後系統返回的值是:".$error."<br/>";
echo "上傳文件的臨時存放路徑是:".$tmp_name."<br/>";
echo"開始移動臨時文件".'<br>';
$des_name = 'up/'.mt_rand().time().'.'.basename($type);
$res = move_uploaded_file($tmp_name, $des_name);
if($res){
echo "================<br/>";
echo "上傳圖片成功".'<br>';
}
}

3. PHP文件上傳代碼用法

php文件上傳代碼編寫過程

先判斷是否上傳文件

如果有再來判斷上傳中是否出錯

如果出錯 則提示出錯信息

如查沒出錯 再判斷文件類型

如果類型符合條件 再判斷指定目錄中有沒有存在該文件

如果沒有就把該文件移至指定目錄

在php中上傳文件必須知道的幾個東西

$_FILES[ myfile ][ name ] 是指被上傳文件的名稱

$_FILES[ myfile ][ type ] 是指被上傳文件的類型

$_FILES[ myfile ][ size ] 是指被上傳文件的大小 單位為位元組(B)

$_FILES[ myfile ][ tmp_name ] 是指被上傳文件存在伺服器中的臨時副本文件名稱 文件被移動到指定目錄後臨文件將被自動消毀

$_FILES[ myfile ]["error"] 是指由文件上傳中有可能出現的錯誤的狀態碼 關於各狀態含義後在會說明

先來看一下HTML部分

代碼如下 復制代碼

?<form action="upload php" method="post" enctype="multipart/form data"> 上傳 <input type=file name=myfile /> <input type=submit name=submit value="上傳" /> </form>

說明

form標答的action="upload php"是指點擊這個form中的submit的時候 這個上傳命令會被發送到這個叫 upload php的頁面去處理 method="post"是指以post方式去送 enctype="multipart/form data"屬性規定了在提交這個表單時要使用哪種內容類型 在表單需要二進制數據時 比如文件內容 請使用"multipart/form data" 如果要上傳文件 這個屬性是必要的 input中的type="file"時 規定了應該把輸入作為文件來處理 並且在input後面會有一個瀏覽的按鈕

我們再來看一個PHP處理頁面 upload php

代碼如下 復制代碼

<?php if($_FILES[ myfile ][ name ] != ) { if($_FILES[ myfile ][ error ] > ) { echo "錯誤狀態 " $_FILES[ myfile ][ error ]; } else { move_uploaded_file($_FILES[ myfile ][ tmp_name ] "uploads/" $FILES[ myfile ][ name ]); echo "<script>alert(上傳成功!);</script>"; } } else{ echo "<script>alert(請上傳文件!);</script>"; } ?>

上面超級簡單 我們現在來升級一下

upload php

代碼如下 復制代碼

<!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN"> <> <head> <title>ddd</title> <meta equiv="content type" content="text/; charset=UTF "> </head> <body> <! 文件上傳要注意: 要有enctyp method="post" > <form enctype="multipart/form data" action="uploadProcess php" method="post" > <table> <tr><td>請填寫用戶名</td><td><input type=text name=username></td></tr> <tr><td>請簡單介紹文件</td><td><textarea rows=" " cols=" " name=fileintro class="page_speeder_734321457"></textarea></td></tr> <tr><td>請上傳你的文件</td><td><input type=file name=myfile></td></tr> <tr><td colspan=" "><input type=submit value="上傳"><td></tr> </table> </form> </body> </>

uploadProcess php

代碼如下 復制代碼

<?php

//接收 $username=$_POST[ username ]; $fileintro=$_POST[ fileintro ]; //echo $username $fileintro; //獲取文件信息 /* echo "<pre>"; print_r($_FILES); echo "</pre>"; */ //獲取文件的大小 $file_size=$_FILES[ myfile ][ size ]; if($file_size> * * ){ echo "<script type= text/javascript >window alert( 文件不能大於 M )</script>"; exit(); }

//獲取文件類型 $file_type=$_FILES[ myfile ][ type ]; if($file_type!="image/jpeg" && $file_type!="image/pjpeg"){ echo "文件類型只能是 jpg 格式"; exit(); }

//判斷上傳是否OK if(is_uploaded_file($_FILES[ myfile ][ tmp_name ])){ //得到上傳的文件 轉存到你希望的目錄 $upload_file=$_FILES[ myfile ][ tmp_name ]; //防止圖片覆蓋問題 為每個用戶建立一個文件夾 $user_path=$_SERVER[ DOCUMENT_ROOT ] "/file/up/" $username; if(!file_exists($user_path)){ mkdir ($user_path); }

//$move_to_file=$user_path "/" $_FILES[ myfile ][ name ]; //防止用戶上傳用戶名相同的問題 $file_true_name=$_FILES[ myfile ][ name ]; $move_to_file=$user_path "/" time() rand( ) substr($file_true_name strripos($file_true_name " "));

//echo $upload_file $move_to_file; //中文要轉碼 if(move_uploaded_file($upload_file iconv("utf " "gb " "$move_to_file"))){ echo $_FILES[ myfile ][ name ] "上傳成功"; }else{ echo "上傳失敗"; } }else{ echo "上傳失敗"; }

?>

注意:

我舉個例子大家就知道 比如一個圖片文件 pic jpg 我們用 strrchr處理 strrchr(pic jpg ) 它將返回 jpg 明白了嗎?該函數返回指定字元在該字元串最後出現的位置後的字元 配合 substr() 我們就可以取到jpg 這樣我們就得到了文件的後綴名 來判斷上傳文件是否符合指定格式 本程序把指定的格式放在一個數組中 實際使用時可根據需要添加

lishixin/Article/program/PHP/201311/20924

4. php中上傳文件的方法有多少種

一、傳統的php寫的上傳類。
寫一個php的上傳類,這個方法用到的知識全部是php的,而且技術的難點也不多。
<form method="post" action="upload.php" enctype="multipart/form-data">
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">//隱藏域。這里name必須設置成MAX_FILE_SIZE,其值就是上傳文件的最大長度,單位是B,這里我限製成2M
<input name="file" type="file" value="瀏覽" >
< input type="submit" value="上傳" name="B1">
</table>
</form>

服務端利用php的$_FILES['file']['name']來獲取文件後綴名,具體的代碼自己查找資料看看,這里就不多說了。
總結;這個方法可以用來上傳小於2M的文件或者是圖片,基本的功能可以實現。
二、利用uploadify插件
這個是利用jQuery的上傳插件,上傳可以帶進度條,容易配置。
總結:可以上傳一些大文件,和圖片,而且帶進度條,可以多文件上傳,在WEB中會經常用。
三、利用網路的webupload
WebUploader 是由 Bai FEX 團隊開發的一款以 HTML5 為主,FLASH 為輔的現代文件上傳組件。在現代的瀏覽器裡面能充分發揮 HTML5 的優勢,同時又不摒棄主流IE瀏覽器,沿用原來的 FLASH 運行時,兼容 IE6+,iOS 6+, Android 4+。採用大文件分片並發上傳,極大的提高了文件上傳效率。
四、swfupload的插件

這是一個jquery的上傳插件,功能也非常強大,開發也比較容易,網上有很多的資料,可以自行查找。

5. php 上傳文件

剛學php時寫的一個類,可以給你參考下,你所說的功能基本上也都有。

這個用作學習還是不錯的。


<?php
classfileup{
private$savefilepath;//保存路徑
private$filetype=array('gif','jpg','jpeg','png');//文件類型
private$maxsize=1000000;//上傳最大的尺寸默認值設置為1M
private$savename=true;//是否默認隨機名稱
private$upfileform;//上傳文件表單的name值
//以下是不可以修改的成員屬性
private$tmpname;//上傳的臨時文件名
private$upfilename;//上傳文件的名稱
private$uperror;
private$newname;//新的文件名
//private$upfiletype;//上傳文件的類型
private$upfilesize;//上傳文件的大小。
private$filehz;//文件名的擴展名。

//構造方法
function__construct($upfileform,$savefilepath='./upload/'){
$this->upfileform=$upfileform;
$this->savefilepath=rtrim($savefilepath,'/');
$this->tmpname=$_FILES[$upfileform]['tmp_name'];
$this->upfilename=$_FILES[$upfileform]['name'];
$this->upfilesize=$_FILES[$upfileform]['size'];
$this->uperror=$_FILES[$upfileform]['error'];
$this->getnewname();
}
//設置文件上傳的參數,不設置為默認值。
functionsetfilepar($par){
$pars=array('filetype','maxsize','savename');
foreach($paras$key=>$value){
if(in_array($key,$pars)){
$this->$key=$value;
}else{
continue;
}
}
}
//檢查上傳
privatefunctioncheckfileup(){
//判斷文件夾是否正確或文件夾是否有可寫入的許可權。
if(!is_dir($this->savefilepath)||!is_writable($this->savefilepath)){
$this->uperror=8;
returnfalse;
}
//判斷文件名是否存在
if(is_file($this->newname)){
$this->uperror=9;
returnfalse;
}
//判斷上傳文件的類型是否正確。
if(!in_array(strtolower($this->filehz),$this->filetype)){
$this->uperror=-1;
returnfalse;
}
returntrue;
}
//獲取新的文件名字
privatefunctiongetnewname(){
$tmp=explode('.',$this->upfilename);
$this->filehz=$tmp[count($tmp)-1];
if(is_bool($this->savename)){
if($this->savename){
$this->newname=$this->savefilepath.'/'.date('YmdHis').rand(10000,99999).'.'.$this->filehz;
}else{
$this->newname=$this->savefilepath.'/'.$this->upfilename;
}
}else{
$this->newname=$this->savefilepath.'/'.$this->savename.'.'.$this->filehz;
}
}

//獲取錯誤信息
privatefunctiongetuperror(){
switch($this->uperror){
case1:echo'上傳文件超過了系統指定的大小';break;
case2:echo'上傳文件超過了表單中指定的大小';break;
case3:echo'文件只有部分上傳';break;
case4:echo'沒有文件上傳';break;
case6:echo'找不到上傳的文件,系統錯誤';break;
case7:echo'文件寫入失敗';break;
case8:echo'文件路徑不存在,或不可寫';break;
case9:echo'文件名已經存在,請不要重復上傳';break;
case-1:echo'不是指定上傳的文件';break;
case-2:echo'請勿使用非法途徑上傳';break;
case-3:echo'文件上傳失敗';break;
default:'未知錯誤';break;

}
}


functionfileupload(){
if(!$this->checkfileup()||$this->uperror!=0){
$this->getuperror();
returnfalse;
}else{
if(!is_uploaded_file($_FILES[$this->upfileform]['tmp_name'])){
$this->uperror=-2;
$this->getuperror();
returnfalse;
}else{
if(move_uploaded_file($_FILES[$this->upfileform]['tmp_name'],$this->newname)){
returntrue;
}else{
$this->uperror=-3;
returnfalse;
}
}
}
}
//獲取文件名
functiongetname(){
return$this->newname;
}


}

6. php如何實現一次性上傳多個文件

在伺服器中保存失敗";x0dx0a }x0dx0a }x0dx0a }x0dx0a echo "

成功上啟搏傳 ".$up_ok_files. " 個文件

"; x0dx0a}x0dx0a?>x0dx0ax0dx0a 如果對 $_FILES['myfile'] 這個數組的結構不清楚,那麼可以在循環之前加入這洞旁耐句代碼將其顯示出來:x0dx0aprint_r($_FILES['myfile']);x0dx0ax0dx0a 對這個數組的納春結構了解之後,理解上述代碼就比較容易了。x0dx0aforeach循環實現x0dx0a常規下,php上傳一張圖片,頁面上添加一個文件域,上傳後,得到的數組是二維數組x0dx0a轉變一下,x0dx0a頁面上添加多個文件域,並且他們的name屬性相同,而且是以數組形式提交(比如:name="file[]")x0dx0a那麼上傳後,得到的是三維數組x0dx0a而,php中,foreach循環對遍歷數組那真是完美至極x0dx0a用foreach遍歷一次這個三維數組,得到的結果就又是二維數組,那麼,就和上傳一張圖片一樣一樣的了

7. php中的文件上傳處理

PHP上傳文件非常簡單,你需要一個上傳的HTML文件(<FORM>),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。

真正實現完整功能的上傳和管理需要使用資料庫,我的網站俱樂部裡面上傳文件一開放很快就傳了幾萬個文件。

最簡單的方法不用資料庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然後提供一個上傳的FORM,最後檢測是否提交了FORM數據,是就保存文件到指定位置。

PHP手冊第39章有關於處理這些問題的說明,我復制粘貼如下:


上一頁V.特點下一頁

--------------------------------------------------------------------------------

第39章文件上傳處理
目錄
POST方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對PUT方法的支持
POST方法上傳
本特性可以使用戶上傳文本和二進制文件。用PHP的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。

PHP能夠接受任何來自符合RFC-1867標準的瀏覽器(包括NetscapeNavigator3及更高版本,打了補丁的MicrosoftInternetExplorer3或者更高版本)上傳的文件。

相關的設置:請參閱php.ini的file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size以及max_input_time設置選項。

請注意PHP也支持PUT方法的文件上傳,NetscapeComposer和W3C的Amaya客戶端使用這種方法。請參閱對PUT方法的支持以獲取更多信息。

例39.1.文件上傳表單

可以如下建立一個特殊的表單來支持文件上傳:<!--Thedataencodingtype,enctype,MUSTbespecifiedasbelow-->
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>


以上範例中的__URL__應該被換掉,指向一個真實的PHP文件。

MAX_FILE_SIZE隱藏欄位(單位為位元組)必須放在文件輸入欄位之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之後才發現文件過大上傳失敗的麻煩。

注意:要確保文件上傳表單的屬性是enctype="multipart/form-data",否則文件上傳不了。

全局變數$_FILES自PHP4.1.0起存在(在更早的版本中用$HTTP_POST_FILES替代)。此數組包含有所有上傳的文件信息。

以上範例中$_FILES數組的內容如下所示。我們假設文件上傳欄位的名稱如上例所示,為userfile。名稱可隨意命名。

$_FILES['userfile']['name']
客戶端機器文件的原名稱。

$_FILES['userfile']['type']
文件的MIME類型,如果瀏覽器提供此信息的話。一個例子是「image/gif」。不過此MIME類型在PHP端並不檢查,因此不要想當然認為有這個值。

$_FILES['userfile']['size']
已上傳文件的大小,單位為位元組。

$_FILES['userfile']['tmp_name']
文件被上傳後在服務端儲存的臨時文件名。

$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。此項目是在PHP4.2.0版本中增加的。

文件被上傳後,默認地會被儲存到服務端的默認臨時目錄中,除非php.ini中的upload_tmp_dir設置為其它的路徑。服務端的默認臨時目錄可以通過更改PHP運行環境的環境變數TMPDIR來重新設置,但是在PHP腳本內部通過運行putenv()函數來設置是不起作用的。該環境變數也可以用來確認其它的操作也是在上傳的文件上進行的。

例39.2.使文件上傳生效

請查閱函數is_uploaded_file()和move_uploaded_file()以獲取進一步的信息。以下範例處理由表單提供的文件上傳。

<?php
//InPHPversionsearlierthan4.1.0,$HTTP_POST_FILESshouldbeusedinstead
//of$_FILES.

$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);

echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded.\n";
}else{
echo"Possiblefileuploadattack!\n";
}

echo'Hereissomemoredebugginginfo:';
print_r($_FILES);

print"</pre>";

?>

接受上傳文件的PHP腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用$_FILES['userfile']['size']變數來排除過大或過小的文件,也可以通過$_FILES['userfile']['type']變數來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在PHP端並不檢查。自PHP4.2.0起,還可以通過$_FILES['userfile']['error']變數來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。

如果表單中沒有選擇上傳的文件,則PHP變數$_FILES['userfile']['size']的值將為0,$_FILES['userfile']['tmp_name']將為空。

如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。

例39.3.上傳一組文件

PHP的HTML數組特性甚至支持文件類型。

<formaction=""method="post"enctype="multipart/form-data">
<p>Pictures:
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="submit"value="Send"/>
</p>
</form>


<?php
foreach($_FILES["pictures"]["error"]as$key=>$error){
if($error==UPLOAD_ERR_OK){
$tmp_name=$_FILES["pictures"]["tmp_name"][$key];
$name=$_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name,"data/$name");
}
}
?>

--------------------------------------------------------------------------------
上一頁上一級下一頁
38.處理XForms起始頁錯誤信息說明

8. 怎麼將php文件上傳到伺服器上

創建一個文件上傳表單
允許用戶從表單上傳文件是非常有用的。
請看下面這個供上傳文件的 HTML 表單:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
請留意如下有關此表單的信息:
<form> 標簽的 enctype 屬性規定了在提交表單時要使用哪種內容類型。在表單需要二進制數據時,比如文件內容,請使用 "multipart/form-data"。
<input> 標簽的 type="file" 屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。
注釋:允許用戶上傳文件是一個巨大的安全風險。請僅僅允許可信的用戶執行文件上傳操作。
創建上傳腳本
"upload_file.php" 文件含有供上傳文件的代碼:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
通過使用 PHP 的全局數組 $_FILES,你可以從客戶計算機向遠程伺服器上傳文件。
第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:
$_FILES["file"]["name"] - 被上傳文件的名稱
$_FILES["file"]["type"] - 被上傳文件的類型
$_FILES["file"]["size"] - 被上傳文件的大小,以位元組計
$_FILES["file"]["tmp_name"] - 存儲在伺服器的文件的臨時副本的名稱
$_FILES["file"]["error"] - 由文件上傳導致的錯誤代碼
這是一種非常簡單文件上傳方式。基於安全方面的考慮,您應當增加有關什麼用戶有權上傳文件的限制。
上傳限制
在這個腳本中,我們增加了對文件上傳的限制。用戶只能上傳 .gif 或 .jpeg 文件,文件大小必須小於 20 kb:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>
注釋:對於 IE,識別 jpg 文件的類型必須是 pjpeg,對於 FireFox,必須是 jpeg。
保存被上傳的文件
上面的例子在伺服器的 PHP 臨時文件夾創建了一個被上傳文件的臨時副本。
這個臨時的復制文件會在腳本結束時消失。要保存被上傳的文件,我們需要把它拷貝到另外的位置:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。

9. 用PHP控制FTP文件上傳

利用PHP,你總是可以有多種方式來完成某個特定的任務。我們就拿文件上傳舉個例子。當然了,你可以按照傳統的方式來使用HTTP文件上傳,把文件直接傳輸到Web伺服器磁碟上。沙河電腦培訓認為你還可以用更加奇異的方式上傳,用FTP協議兩步就完成上傳:從你的本地硬碟到Web伺服器,然後再到FTP伺服器。



PHP在本機同時支持FTP和HTTP上傳,所以你可以根據自己應用程序的設計需要進行最佳的選擇。使用PHP的FTP函數進行文件傳輸幾乎與使用傳統的FTP客戶端相同——你會看到連函數的名字都和標準的FTP命令類似。


關於HTTP文件上傳的文章已經多得滿天飛了,這就是為什麼本文有必要把注意賣灶爛力放在基於FTP的文件辯首上傳上了(但是在後面給出的例子中,兩種方式你都會看到)。要注意的是,本教程假設你已經安裝好了PHP/Apache,而且HTTP文件上傳和FTP的函數都已經激活了。


第一步:確信你擁有連接/上傳到FTP伺服器的許可權


PHP的FTP函數需要客戶端-伺服器連接,所以你需要在進行文件上傳之前登錄到目標伺服器上。你的第一項任務是確信你已經擁有了完成這項任務的信中漏任書。這一步可能看起來是理所當然的,但是你會驚奇地發現有多少開發人員忘了這么做,結果後來浪費大量的時間來解決因此而出現的問題。


10. php上傳文件

前端頁面:

<formaction=""method="post"enctype="multipart/form-data">
<inputtype="file"name="file">
<inputtype="submit"name="submit"value="Submit">
......
</form>

後台接收頁面:

if(is_uploaded_file($_FILES['file']['tmp_name'])){
if(move_uploaded_file($_FILES['file']['tmp_name'],'目標路徑')){
//上傳成功
}else{
//上傳失敗
}
}
熱點內容
桑塔納全秀和半袖哪個配置高 發布:2025-02-10 07:55:42 瀏覽:349
手紋演算法 發布:2025-02-10 07:52:27 瀏覽:37
愛奇藝怎麼看賬號密碼 發布:2025-02-10 07:51:43 瀏覽:351
破解訪問許可權 發布:2025-02-10 07:17:24 瀏覽:663
慶余年密碼多少 發布:2025-02-10 07:16:38 瀏覽:201
ftp包括有哪兩個連接 發布:2025-02-10 07:11:50 瀏覽:423
壓縮模量es 發布:2025-02-10 07:11:47 瀏覽:115
雞尾酒配置酒什麼意思 發布:2025-02-10 07:01:34 瀏覽:139
c語言的架構設計 發布:2025-02-10 06:59:59 瀏覽:748
柯南可以緩存 發布:2025-02-10 06:59:52 瀏覽:422