日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
三步FTP實(shí)現(xiàn)PHP上傳文件代碼剖析

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

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),奉賢企業(yè)網(wǎng)站建設(shè),奉賢品牌網(wǎng)站建設(shè),網(wǎng)站定制,奉賢網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,奉賢網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

第一步:確信你擁有連接/上傳到FTP服務(wù)器的權(quán)限

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

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.

一旦確認(rèn)有相關(guān)的訪問權(quán)限,你就可以登錄出來。

第二步:創(chuàng)建上傳表單

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

PHP上傳文件代碼列表B

 
 
  1. Pleaseprovidethefollowinginformation:

  2. <formenctypeformenctype="multipart/form-data"method="post"action="upload.php">
  3. <inputtypeinputtype="hidden"name="MAX_FILE_SIZE"value="5000000"/>
  4. Host
  5. <inputtypeinputtype="text"name="host"/>

  6. Username
  7. <inputtypeinputtype="text"name="user"/>

  8. Password
  9. <inputtypeinputtype="password"name="pass"/>

  10. Destinationdirectory
  11. <inputtypeinputtype="text"name="dir"/>

  12. File
  13. <inputtypeinputtype="file"name="file"/>

  14. <inputtypeinputtype="submit"name="submit"value="UploadFile"/>

在這里,元素用來生成文件選擇對(duì)話框,用戶通過它來選擇要被上傳的文件。元素然后就把表單數(shù)據(jù)編碼成為多個(gè)部分提交,這可以讓PHP更容易地識(shí)別提交的文件組件。

第三步:創(chuàng)建PHP上傳處理程序

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

PHP上傳文件代碼列表C

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

本文名稱:三步FTP實(shí)現(xiàn)PHP上傳文件代碼剖析
地址分享:http://www.5511xx.com/article/ccojdjh.html