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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

浙企加入中國大數據產業生態聯盟 共商數據價值

基于大數據時代的考量&#xff0c;在工業和信息化部指導下&#xff0c;8月2日&#xff0c;中國電子信息產業發展研究院聯合大數據產業鏈各環節企業及第三方產業機構自愿組成非營利社會組織——中國大數據產業生態聯盟。浙江企業元寶鋪受邀成為聯盟理事成員單位。 大會現場&…

hdu 4442 Physical Examination (2012年金華賽區現場賽A題)

昨天模擬賽的時候坑了好久&#xff0c;剛開始感覺是dp&#xff0c;仔細一看數據范圍太大。 題目大意&#xff1a;一個人要參加考試&#xff0c;一共有n個科目&#xff0c;每個科目都有一個相應的隊列&#xff0c;完成這門科目的總時間為ab*&#xff08;前面已完成科目所花的總時…

xsd學習教程

http://www.w3school.com.cn/schema/轉載于:https://www.cnblogs.com/eric-lin/p/4969269.html

php 賦值 遞增,PHP 基礎(賦值及函數)

開端<?php>結尾弱類型語言 定義變量的時候 不需要 聲明 但是 每一個變量前 都必須 加$ 符號儲存文件按 統一放到 安裝文件夾下面的 WAMP 下面 的WWW 文件內部 (與創的站點統一即可) 該文件下面不能出現中文注釋語法&#xff1a; 單行注釋&#xff1a;…

maven project創建填充項

GroupID是項目組織唯一的標識符&#xff0c;實際對應JAVA的包的結構&#xff0c;是main目錄里java的目錄結構。ArtifactID就是項目的唯一的標識符&#xff0c;實際對應項目的名稱&#xff0c;就是項目根目錄的名稱。一般GroupID就是填com.leafive.test這樣子。轉載于:https://w…

【循序漸進學Python】14.數據庫的支持

純文本只能夠實現一些簡單有限的功能。如果想要實現自動序列化&#xff0c;也可以使用 shelve 模塊和 pickle 模塊來實現。但是&#xff0c;如果想要自動的實現數據并發訪問&#xff0c;以及更標準&#xff0c;更通用的數據庫(database)存儲方式還是使用數據庫。 1. Python 數據…

Foundation框架

1.框架是由許多類、方法、函數、文檔按照一定的邏輯組織起來的集合&#xff0c;以便使研發程序變的更容易 清除緩存&#xff0c;刪除這個文件夾下的所有文件/Users/fanyafang/Library/Developer/Xcode/DerivedData 顯示隱藏文件&#xff1a;defaults write com.apple.finder Ap…

ubuntu上搭建php,ubuntu10.04上搭建php網站運行環境

ubuntu 10.04下搭建php網站運行環境ubuntu 10.04下搭建php網站運行環境前提&#xff1a;要打開root權限sudo password [這里填寫root密碼]1、第一步安裝ubuntu10.042、更新源sudo apt-get update3、安裝lighttpdsudo apt-get install lighttpd安裝好之后檢查lighttpd是否成功啟…

Windows 10 Threshold 2 升級記錄

昨天&#xff08;11月17日&#xff09;升級到Windows 10 Threshold 2版本。我的使用的設備是Surface Pro 3&#xff0c;4G內存&#xff0c;128G硬盤。 Threshold 2是作為一個Windows系統更新推送的。如果沒有收到系統更新提示&#xff0c;在系統設置里面手動檢查一下更新就可以…

轉換php script類型,javascript如何實現值的類型轉換

本篇文章給大家介紹使用javascript進行值的類型轉換的方法&#xff0c;有一定的參考價值&#xff0c;有需要的朋友可以參考一下&#xff0c;希望對你們有所幫助。JavaScript是松散類型的語言&#xff0c;大多數情況下&#xff0c;運算符和函數會自動將值轉換為正確的類型(隱式轉…

iOS屏幕適配方案-Auto Layout

市場上的android手機五花八門。各種尺寸的屏幕讓android程序員們比較頭疼。也有一些大神寫了一些博客提出了自己的觀點。iOS貌似也迎來了大屏6&#xff0b;&#xff0c;因此屏幕適配的問題也是有滴&#xff0c;因此蘋果也有自己的方法&#xff0d;auto Layout 。本人初學iOS。今…

Exercise 12: Prompting People

age raw_input("How old are you? ") height raw_input("How tall are you? ") weight raw_input("How much do you weigh? ") print "So, youre %r old, %r tall and %r heavy." % ( age, height, weight) 轉載于:https://www.…

一年一循環

一年了&#xff0c;沒怎么關注博客園&#xff0c;回來看看。 希望自己今后多學多記錄多分享。轉載于:https://www.cnblogs.com/Chinarain/p/4974904.html

JAVA三角海倫公式,海倫公式求三角形面積出錯求教

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓就下面這個程序 輸入其他的數字都可以算出面積 但是當輸入3,4,6時 計算出面積為零 求吧友指出錯誤在哪package javaapplication17;import java.util.Scanner;public class JavaApplication17 {public static void main(String[] ar…

虛擬機里面安裝Openfiler 2.99

2019獨角獸企業重金招聘Python工程師標準>>> 簡介 Openfiler 由rPath Linux驅動&#xff0c;它是一個基于瀏覽器的免費網絡存儲管理實用程序&#xff0c;可以在單一框架中提供基于文件的網絡連接存儲 (NAS) 和基于塊的存儲區域網 (SAN)。Openfiler 支持 CIFS、NFS、…

win10如何搭建php,Win10系統怎么搭建php環境 win10搭建PHP環境方法

Win10系統怎么搭建php環境&#xff1f;win10搭建PHP環境方法。在今天的Win10系統使用教程中&#xff0c;我們將給大家分享的是在Win10系統下搭建Apache和PHP的開發環境的方法。可能有網友會問&#xff1a;Win10系統搭載Apache和PHP的開發環境的方法是不是與Win7/Win8.1的差不多…

關于jmf不能播放mp3的問題解決

想寫個JAVA的MP3音樂管理器&#xff0c;使用JMF插件&#xff0c;但發現運行時總報一個異常&#xff1a;Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize32768 bitsFailed to realize: com.sun.media.P…

LINK:fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

原文地址&#xff1a;http://yacare.iteye.com/blog/2010049 很多伙伴在更新VS2010&#xff0c;或者卸載VS2012安裝2010后&#xff0c;建立Win32 Console Project/MFC項目時會出現"LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞"的錯誤。 錯誤描…

網站出現403 Forbidden

1&#xff0c; 你在一定時間內過多地訪問此網站&#xff08;一般是用采集程序&#xff09;&#xff0c;被防火墻拒絕訪問了 2&#xff0c; 網站域名解析到了空間&#xff0c;但空間未綁定此域名 3&#xff0c; 你的網頁腳本文件在當前目錄下沒有執行權限 4&#xff0c; 服務器繁…