利用PHP,你总是可以有多种方式来完成某个特定的任务。
我们就拿文件上传举个例子。
当然了,你可以按照传统的方式来使用HTTP文件上传,把文件直接传输到Web服务器磁盘上。
海南电脑培训http://www.kmbdqn.cn/认为你还可以用更加奇异的方式上传,用FTP协议两步就完成上传:从你的本地硬盘到Web服务器,然后再到FTP服务器。
PHP在本机同时支持FTP和HTTP上传,所以你可以根据自己应用程序的设计需要进行最佳的选择。
使用PHP的FTP函数进行文件传输几乎与使用传统的FTP客户端相同——你会看到连函数的名字都和标准的FTP命令类似。
关于HTTP文件上传的文章已经多得满天飞了,这就是为什么本文有必要把注意力放在基于FTP的文件上传上了(但是在后面给出的例子中,两种方式你都会看到)。
要注意的是,本教程假设你已经安装好了PHP/Apache,而且HTTP文件上传和FTP的函数都已经激活了。
第一步:确信你拥有连接/上传到FTP服务器的权限PHP的FTP函数需要客户端-服务器连接,所以你需要在进行文件上传之前登录到目标服务器上。
你的第一项任务是确信你已经拥有了完成这项任务的信任书。
这一步可能看起来是理所当然的,但是你会惊奇地发现有多少开发人员忘了这么做,结果后来浪费大量的时间来解决因此而出现的问题。
给你一些 php 操作 ftp 的函数:
FTP 函数
ftp_alloc — 为要上传的文件分配空间
ftp_cdup — 切换到当前目录的父目录
ftp_chdir — 在 FTP 服务器上改变当前目录
ftp_chmod — 设置 FTP 服务器上的文件权限
ftp_close — 关闭一个 FTP 连接
ftp_connect — 建立一个新的 FTP 连接
ftp_delete — 删除 FTP 服务器上的一个文件
ftp_exec — 请求运行一条 FTP 命令
ftp_fget — 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
ftp_fput — 上传一个已经打开的文件到 FTP 服务器
ftp_get_option — 返回当前 FTP 连接的各种不同的选项设置
ftp_get — 从 FTP 服务器上下载一个文件
ftp_login — 登录 FTP 服务器
ftp_mdtm — 返回指定文件的最后修改时间
ftp_mkdir — 建立新目录
ftp_nb_continue — 连续获取/发送文件(non-blocking)
ftp_nb_fget — 从 FTP 服务器获取文件并写入到一个打开的文件(非阻塞)
ftp_nb_fput — 将文件存储到 FTP 服务器 (非阻塞)
ftp_nb_get — 从 FTP 服务器上获取文件并写入本地文件(non-blocking)
ftp_nb_put — 存储一个文件至 FTP 服务器(non-blocking)
ftp_nlist — 返回给定目录的文件列表
ftp_pasv — 返回当前 FTP 被动模式是否打开
ftp_put — 上传文件到 FTP 服务器
ftp_pwd — 返回当前目录名
ftp_quit — ftp_close 的 别名
ftp_raw — 向 FTP 服务器发送命令
ftp_rawlist — 返回指定目录下文件的详细列表
ftp_rename — 更改 FTP 服务器上的文件或目录名
ftp_rmdir — 删除 FTP 服务器上的一个目录
ftp_set_option — 设置各种 FTP 运行时选项
ftp_site — 向服务器发送 SITE 命令
ftp_size — 返回指定文件的大小
ftp_ssl_connect — 打开 SSL-FTP 连接
ftp_systype — 返回远程 FTP 服务器的操作系统类型
例子:
<?php
$ftp_server=""
$ftp_user_name=""
$ftp_user_pass=""
$file = ""//tobe uploaded
$remote_file = ""
// 简历ftp链接
$conn_id = ftp_connect($ftp_server)
// 使用用户名和密码登录
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)
// 上传文件
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "成功上传文件: $file\n"
exit
} else {
echo "上传文件错误: $file\n"
exit
}
// 关闭ftp链接
ftp_close($conn_id)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)