三步FTP实现PHP上传文件代码剖析_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了三步FTP实现PHP上传文件代码剖析_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4119字,纯文字阅读大概需要6分钟。
内容图文
想知道上传文件的详细步骤吗,下面我就带大家一起详细分析一下吧。利用PHP,你总是可以有多种方式来完成某个特定的任务。我们就拿文件上传举个例子。当然了,你可以按照传统的方式来使用HTTP文件上传,把文件直接传输到Web服务器磁盘上。你还可以用更加奇异的方式上传,用FTP协议两步就完成上传:从你的本地硬盘到Web服务器,然后再到FTP服务器。第一步:确信你拥有连接/上传到FTP服务器的权限
PHP的FTP函数需要客户端-服务器连接,所以你需要在进行文件上传之前登录到目标服务器上。你的第一项任务是确信你已经拥有了完成这项任务的信任书。这一步可能看起来是理所当然的,但是你会惊奇地发现有多少开发人员忘了这么做,结果后来浪费大量的时间来解决因此而出现的问题。你可以通过使用命令行的FTP客户端登录到目标服务器上,以检查连接状况并尝试上传一个假文件。
PHP上传文件代码列表A
- $ftp
- ftp>opensome.host.com
- Connectedtosome.host.com.
- 220WelcometoleonFTPServer!
- User:upload
- 331Useruploadokay,needpassword.
- Password:***
- 230Restricteduserloggedin.
- ftp>bin
- 200Typeokay.
- ftp>hash
- HashmarkprintingOn?ftp:(2048bytes/hashmark).
- ftp>putfile.bin
- 200PORTcommandsuccessful.
- 150OpeningBINARYmodedataconnection.
- ##
- 226Transfercompleted.
- ftp:4289bytessentin0.00Seconds4289000.00Kbytes/sec.
- ftp>bye
- 221Goodbye.
一旦确认有相关的访问权限,你就可以登录出来。
第二步:创建上传表单
然后,创建一个简单的HTML表单,向用户询问重要的参数——FTP服务器的访问信息、服务器上传的目录,以及完整的目录和上传文件的名字。下面这个例子就是这个表单的样式。
PHP上传文件代码列表B
- <html>
- <head></head>
- <body>
- <h2>Pleaseprovidethefollowinginformation:</h2>
- <formenctypeformenctype="multipart/form-data"method="post"action="upload.php">
- <inputtypeinputtype="hidden"name="MAX_FILE_SIZE"value="5000000"/>
- Host<br/>
- <inputtypeinputtype="text"name="host"/><p/>
- Username<br/>
- <inputtypeinputtype="text"name="user"/><p/>
- Password<br/>
- <inputtypeinputtype="password"name="pass"/><p/>
- Destinationdirectory<br/>
- <inputtypeinputtype="text"name="dir"/><p/>
- File<br/>
- <inputtypeinputtype="file"name="file"/><p/>
- <inputtypeinputtype="submit"name="submit"value="UploadFile"/>
- </form>
- </body>
- </html>
在这里,<inputtype=file...>元素用来生成文件选择对话框,用户通过它来选择要被上传的文件。<formenctype=...>元素然后就把表单数据编码成为多个部分提交,这可以让PHP更容易地识别提交的文件组件。
第三步:创建PHP上传处理程序
一旦表单被提交给了Web服务器,下一步(也是最后一步)是使用PHP的FTP函数按照用户提供的访问信任书把它传输到目标服务器上。下面就是完成上述所有工作的脚本(upload.php)。
PHP上传文件代码列表C
- php
- //getFTPaccessparameters
- $host=$_POST['host'];
- $user=$_POST['user'];$pass=$_POST['pass'];
- $destDir=$_POST['dir'];
- $workDir="/usr/local/temp";//definethisasperlocalsystem
- //gettemporaryfilenamefortheuploadedfile
- $tmpName=basename($_FILES['file']['tmp_name']);
- //copyuploadedfileintocurrentdirectory
- move_uploaded_file($_FILES['file']['tmp_name'],$workDir."/".$tmpName)ordie("Cannotmoveuploadedfiletoworkingdirectory");
- //openconnection
- $conn=ftp_connect($host)ordie("Cannotinitiateconnectiontohost");
- //sendaccessparameters
- ftp_login($conn,$user,$pass)ordie("Cannotlogin");
- //performfileupload
- $upload=ftp_put($conn,$destDir."/".$_FILES['file']['name'],$workDir."/".$tmpName,FTP_BINARY);
- //checkuploadstatus
- //displaymessage
- if(!$upload){
- echo"Cannotupload";
- }else{
- echo"Uploadcomplete";
- }
- //closetheFTPstream
- ftp_close($conn);
- //deletelocalcopyofuploadedfile
- unlink($workDir."/".$tmpName)ordie("Cannotdeleteuploadedfilefromworkingdirectory--manualdeletionrecommended");
- ?>
http://www.bkjia.com/PHPjc/446550.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446550.htmlTechArticle想知道上传文件的详细步骤吗,下面我就带大家一起详细分析一下吧。利用PHP,你总是可以有多种方式来完成某个特定的任务。我们就拿文...
内容总结
以上是互联网集市为您收集整理的三步FTP实现PHP上传文件代码剖析_PHP教程全部内容,希望文章能够帮你解决三步FTP实现PHP上传文件代码剖析_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。