想知道上传文件的详细步骤吗,下面我就带大家一起详细分析一下吧。利用php,你总是可以有多种方式来完成某个特定的任务。我们就拿文件上传举个例子。当然了,你可以按照传统的方式来使用http文件上传,把文件直接传输到web服务器磁盘上。你还可以用更加奇异的方式上传,用ftp协议两步就完成上传:从你的本地硬盘到web服务器,然后再到ftp服务器。
php在本机同时支持ftp和http上传,所以你可以根据自己应用程序的设计需要进行最佳的选择。使用php的ftp函数进行文件传输几乎与使用传统的ftp客户端相同——你会看到连函数的名字都和标准的ftp命令类似。关于http文件上传的文章已经多得满天飞了,这就是为什么本文有必要把注意力放在基于ftp的文件上传上了(但是在后面给出的例子中,两种方式你都会看到)。要注意的是,本教程假设你已经安装好了php/apache,而且http文件上传和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-datamethod=postaction=upload.php> inputtypeinputtype=hiddenname=max_file_sizevalue=5000000/> hostbr/> inputtypeinputtype=textname=host/>p/> usernamebr/> inputtypeinputtype=textname=user/>p/> passwordbr/> inputtypeinputtype=passwordname=pass/>p/> destinationdirectorybr/> inputtypeinputtype=textname=dir/>p/> filebr/> inputtypeinputtype=filename=file/>p/> inputtypeinputtype=submitname=submitvalue=uploadfile/> form> body> html>
在这里,元素用来生成文件选择对话框,用户通过它来选择要被上传的文件。元素然后就把表单数据编码成为多个部分提交,这可以让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){ echocannotupload; }else{ echouploadcomplete; } //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,你总是可以有多种方式来完成某个特定的任务。我们就拿文...