成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三步FTP實現PHP上傳文件代碼剖析

開發 后端
文章利用FTP實現上傳文件分為三個步驟,確信你擁有連接/上傳到FTP服務器的權限、創建上傳表單、創建PHP上傳處理程序,還有詳細的PHP上傳文件代碼。

想知道上傳文件的詳細步驟嗎,下面我就帶大家一起詳細分析一下吧。利用PHP,你總是可以有多種方式來完成某個特定的任務。我們就拿文件上傳舉個例子。當然了,你可以按照傳統的方式來使用HTTP文件上傳,把文件直接傳輸到Web服務器磁盤上。你還可以用更加奇異的方式上傳,用FTP協議兩步就完成上傳:從你的本地硬盤到Web服務器,然后再到FTP服務器。

#T#PHP在本機同時支持FTP和HTTP上傳,所以你可以根據自己應用程序的設計需要進行最佳的選擇。使用PHP的FTP函數進行文件傳輸幾乎與使用傳統的FTP客戶端相同——你會看到連函數的名字都和標準的FTP命令類似。關于HTTP文件上傳的文章已經多得滿天飛了,這就是為什么本文有必要把注意力放在基于FTP的文件上傳上了(但是在后面給出的例子中,兩種方式你都會看到)。要注意的是,本教程假設你已經安裝好了PHP/Apache,而且HTTP文件上傳和FTP的函數都已經激活了。本文可以從這里下載,所有的源代碼都以單獨的文本方式列出來了。

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

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

PHP上傳文件代碼列表A

  1. $ftp  
  2. ftp>opensome.host.com  
  3. Connectedtosome.host.com.  
  4. 220WelcometoleonFTPServer!  
  5. User:upload  
  6. 331Useruploadokay,needpassword.  
  7. Password:***  
  8. 230Restricteduserloggedin.  
  9. ftp>bin  
  10. 200Typeokay.  
  11. ftp>hash  
  12. HashmarkprintingOn?ftp:(2048bytes/hashmark).  
  13. ftp>putfile.bin  
  14. 200PORTcommandsuccessful.  
  15. 150OpeningBINARYmodedataconnection.  
  16. ##  
  17. 226Transfercompleted.  
  18. ftp:4289bytessentin0.00Seconds4289000.00Kbytes/sec.  
  19. ftp>bye  
  20. 221Goodbye. 

一旦確認有相關的訪問權限,你就可以登錄出來。

第二步:創建上傳表單

然后,創建一個簡單的HTML表單,向用戶詢問重要的參數——FTP服務器的訪問信息、服務器上傳的目錄,以及完整的目錄和上傳文件的名字。下面這個例子就是這個表單的樣式。

PHP上傳文件代碼列表B

  1. <html> 
  2. <head></head> 
  3. <body> 
  4. <h2>Pleaseprovidethefollowinginformation:</h2> 
  5.  
  6. <formenctypeformenctype="multipart/form-data"method="post"action="upload.php"> 
  7. <inputtypeinputtype="hidden"name="MAX_FILE_SIZE"value="5000000"/> 
  8. Host<br/> 
  9. <inputtypeinputtype="text"name="host"/><p/> 
  10. Username<br/> 
  11. <inputtypeinputtype="text"name="user"/><p/> 
  12. Password<br/> 
  13. <inputtypeinputtype="password"name="pass"/><p/> 
  14. Destinationdirectory<br/> 
  15. <inputtypeinputtype="text"name="dir"/><p/> 
  16. File<br/> 
  17. <inputtypeinputtype="file"name="file"/><p/> 
  18. <inputtypeinputtype="submit"name="submit"value="UploadFile"/> 
  19. </form> 
  20. </body> 
  21. </html> 

在這里,<inputtype=file...>元素用來生成文件選擇對話框,用戶通過它來選擇要被上傳的文件。<formenctype=...>元素然后就把表單數據編碼成為多個部分提交,這可以讓PHP更容易地識別提交的文件組件。

第三步:創建PHP上傳處理程序

一旦表單被提交給了Web服務器,下一步(也是最后一步)是使用PHP的FTP函數按照用戶提供的訪問信任書把它傳輸到目標服務器上。下面就是完成上述所有工作的腳本(upload.php)。

PHP上傳文件代碼列表C

  1. <?php 
  2. //getFTPaccessparameters  
  3. $host=$_POST['host'];  
  4. $user=$_POST['user'];$pass=$_POST['pass'];  
  5. $destDir=$_POST['dir'];  
  6. $workDir="/usr/local/temp";//definethisasperlocalsystem  
  7. //gettemporaryfilenamefortheuploadedfile  
  8. $tmpName=basename($_FILES['file']['tmp_name']);  
  9. //copyuploadedfileintocurrentdirectory  
  10. move_uploaded_file($_FILES['file']['tmp_name'],$workDir."/".$tmpName)ordie("Cannotmoveuploadedfiletoworkingdirectory");  
  11. //openconnection  
  12. $conn=ftp_connect($host)ordie("Cannotinitiateconnectiontohost");  
  13. //sendaccessparameters  
  14. ftp_login($conn,$user,$pass)ordie("Cannotlogin");  
  15. //performfileupload  
  16. $upload=ftp_put($conn,$destDir."/".$_FILES['file']['name'],$workDir."/".$tmpName,FTP_BINARY);  
  17. //checkuploadstatus  
  18. //displaymessage  
  19. if(!$upload){  
  20. echo"Cannotupload";  
  21. }else{  
  22. echo"Uploadcomplete";  
  23. }  
  24. //closetheFTPstream  
  25. ftp_close($conn);  
  26. //deletelocalcopyofuploadedfile  
  27. unlink($workDir."/".$tmpName)ordie("Cannotdeleteuploadedfilefromworkingdirectory--manualdeletionrecommended");  
  28. ?> 
責任編輯:田樹 來源: 博客
相關推薦

2009-12-07 09:53:20

搭建PHP環境

2009-12-10 10:11:08

2009-11-16 10:40:02

PHP上傳文件代碼

2009-11-16 14:15:51

PHP上傳多個文件

2009-11-16 11:41:19

PHP上傳大文件

2009-11-05 10:01:26

Visual Stud

2010-04-20 20:53:35

實現網絡負載均衡

2010-02-26 16:16:15

2009-11-10 12:55:26

VB.NET三維模型

2010-08-12 10:10:37

FlexMapABC

2010-05-17 09:49:19

DataCore虛擬化

2021-03-02 07:02:45

Linux操作系統

2011-07-13 09:54:22

VMware故障vSphere

2009-02-04 09:45:05

Java SocketSocket APIJava編程

2020-11-04 00:00:29

Kerberos協議身份

2025-06-18 02:12:00

2015-06-09 09:25:34

2012-08-08 17:05:36

App運營

2009-11-16 10:49:43

PHP上傳文件代碼

2012-05-25 10:18:23

響應式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区在线观看 | 欧美精品一区二区在线观看 | ririsao久久精品一区 | 中文字幕日韩av | 一级国产精品一级国产精品片 | 欧美日韩免费一区二区三区 | 国产精品99 | 日韩国产欧美视频 | 精品在线视频播放 | 日韩三级电影在线看 | 欧美老妇交乱视频 | 亚洲高清av在线 | 久久久www成人免费精品张筱雨 | 日韩a v在线免费观看 | 国产在线精品一区二区 | 国产免费一区二区 | 男女激情网站免费 | 日韩中文一区 | 亚洲av毛片| 黑人精品xxx一区一二区 | 成人在线播放网站 | 天天夜天天操 | 国产欧美在线 | 中文字幕在线一区二区三区 | aaa级片 | 日本高清视频在线播放 | 黄色精品 | 自拍偷拍亚洲一区 | 国产人久久人人人人爽 | 国产欧美一区二区三区日本久久久 | 日韩电影在线 | 尹人av | 成人国产精品久久 | 皇色视频在线 | 欧美精品一区二区三区蜜桃视频 | 日批免费在线观看 | 亚洲精品久久国产高清情趣图文 | 国产高清免费 | 日本高清不卡视频 | 日韩高清一区 | 一区二区久久 |