日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php实现上传,PHP实现文件上传例子

發布時間:2023/12/10 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php实现上传,PHP实现文件上传例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實例1:

上載文件表單網頁:updatefile.htm

上載文件表單請選取文件:

[Ctrl+A 全部選擇 然后拷貝]

處理上載文件網頁:updatefile.php3

處理上載文件

copy($userfile, "newfilename");

echo $userfile." - 用戶上傳到服務器上的文件臨時存放的名稱
";

echo $userfile_name." - 在用戶機器上該文件的原始名稱
";

echo $userfile_size." - 上傳文件的實際字節數
";

echo $userfile_type." - 如果用戶的瀏覽器提供了這個信息的話,

它表示mime的類型。例如

image/gif
";

?>

[Ctrl+A 全部選擇 然后拷貝]

注意:文件上載后必須拷貝到新的地方或重新更名,否則當進程執行完后,上載樣本將被刪除

實例2:

PHP3是一種非常強大的CGI腳本語言,就其語言特點基本上源于C,就其實現方式而言更象PERL,而其對數據庫的內在支持更使之成為ASP的強大對手。

首先在前臺必須有一個界面

文件上載界面

ACTION = "upload.php3" METHOD = "POST">

[Ctrl+A 全部選擇 然后拷貝]

值得注意的是一個 MAX_FILE_SIZE的隱藏值域,通過設置其VALUE可以限制上載文件的大小。  然后在后臺實現文件上載操作。如果只是最基本的上載,寥寥幾行就可以搞定

If($UploadFile != "none"){

copy($UploadFile,"$UploadFile_name");

unlink($UploadFile);

}

else{

echo "你沒有選擇任何文件上載!";

}

?>

因為form傳遞過來的值自動賦值給同名變量,所以直接通過$UploadFile可以訪問上載的文件,但由于這是一個保存文件的變量,因此文件名字必須通過另外一個$UploadFile_name變量取得。在拷貝文件后刪去臨時文件(unlink)。

上面的代碼完全可以工作,但實際應用中漏洞百出,讓我們逐步來完善之首先,上載的文件必須有一個固定的目錄保存,我們在這里用一個$UploadPath變量保存之,如$UploadPath = "/home/flier/upload/";

或復雜一點的自動定位,如

$UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\";

$PATH_TRANSLATED顧名思義是當前傳送目錄

我們假定以其一個名為upload的子目錄來保存上載的文件。dirname函數返回其目錄名,然后加上子目錄名然后用一個變量$FileName保存完整的上載后文件名和路徑

$FileName = $UploadPath.$UploadFile_name;

其次,我們還想讓用戶得知上載文件的簡要信息,如上載文件的大小if($UploadFile_size <1024) {? //上載文件大小

$FileSize = (string)$UploadFile_size . "字節";

}

elseif($UploadFile_size

$FileSize = number_format((double)($UploadFile_size / 1024), 1) . " KB";

}

else{

$FileSize = number_format((double)($UploadFile_size / (1024 * 1024)), 1) . " MB";

}?????number_format函數起到格式化輸出的作用,具體用法請參照手冊。下一步我們必須考慮到文件已經存在和拷貝操作失敗的情況,并提供相應的提示信息if(!file_exists($FileName)){

if(copy($UploadFile,$FileName)) {

echo "文件 $UploadFile_name($FileSize)上載成功!";

}

else {

echo "文件 $UploadFile_name上載失敗!";

}

unlink($UploadFile);

}

else {

echo "文件 $UploadFile_name已經存在!";

}

然后我們應該考慮到大文件上載時容易出現超時的情況,可以用set_time_limit($TimeLimit);加大超時限制時間。

最后,把截面和實現代碼綜合到一個單獨的文件中,為了實現這個想法,我們通過在 form中添加一個隱含值指出當前的狀態(界面或實現),以便區分對待完成代碼如下:

upload.php3:

if(!$UploadAction):

?>

文件上載界面

ACTION = "upload.php3" METHOD = "POST">

else:

?>

文件上載代碼

$UploadAction=0;

$TimeLimit=60; /*設置超時限制時間

缺省時間為 30秒

設置為0時為不限時 */

set_time_limit($TimeLimit);

If(($UploadFile != "none")&&

($UploadFile != ""))

{

$UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\";

//上載文件存放路徑

$FileName = $UploadPath.$UploadFile_name; //上載文件名

if($UploadFile_size <1024) //上載文件大小

{

$FileSize = (string)$UploadFile_size . "字節";

}

elseif($UploadFile_size

{

$FileSize = number_format((double)($UploadFile_size / 1024), 1) . " KB";

}

else

{

$FileSize = number_format((double)($UploadFile_size/(1024*1024)),1)."MB";

}

if(!file_exists($FileName))

{

if(copy($UploadFile,$FileName))

{

echo "文件 $UploadFile_name ($FileSize)上載成功!";

}

else

{

echo "文件 $UploadFile_name上載失敗!";

}

unlink($UploadFile);

}

else

{

echo "文件 $UploadFile_name已經存在!";

}

}

else

{

echo "你沒有選擇任何文件上載!";

}

set_time_limit(30); //恢復缺省超時設置

?>

返回

endif;

?>[Ctrl+A 全部選擇 然后拷貝]

出處:

責任編輯:cjj

◎進入論壇網絡編程版塊參加討論

總結

以上是生活随笔為你收集整理的php实现上传,PHP实现文件上传例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。