说明
最近,我在新浪SAE-标准环境上做测试的时候。由于,我的新浪SAE上并不能存储文件。所以,我就想我的SAE里不能存,那我就存到其他地方啊。通过百度,了解到可以使用PHP内置的FTP操作。然而,其实新浪SAE-标准环境他是不支持FTP的。所以,其实也没有解决我的问题。
准备工作
创建FTP账号
groupadd ftp //新建一个ftp用户组
cd /opt/lampp //切换到lampp目录
chown root.ftp htdocs //将lampp目录下的htdocs文件夹,分配给ftp用户组
chmod 775 htdocs //更改htdocs文件权限
useradd admin //增加一个用户
passwd admin //设置用户密码
usermod -a -G ftp admin //将用户增加到ftp组别
代码实现
// 建立基础连接
// 如果成功返回一个连接标识,失败则返回 FALSE 。
$conn_id = ftp_connect('服务器ip地址');
if(!$conn_id){
echo "建立基础连接失败!<br>";
exit;
}else{
echo "建立基础连接成功!<br>";
}
// 使用用户名和口令登录
$login_result = ftp_login($conn_id, '用户名', '密码');
// 检查是否成功
// 成功时返回 TRUE, 或者在失败时返回 FALSE。 如果登录失败,PHP 会抛出一个警告。
if ((!$login_result)) {
echo "FTP登录失败!<br>";
exit;
} else {
echo "FTP登录成功!<br>";
}
// 上传文件
$upload = ftp_put($conn_id, '服务端存储的路径', '本地要上传的文件路径',FTP_ASCII);
// 检查上传结果
// 成功时返回 TRUE, 或者在失败时返回 FALSE。
if (!$upload) {
echo "上传失败!<br>";
} else {
echo "上传成功!<br>";
}
// 关闭 FTP 流
ftp_close($conn_id);
注意
ftp_connect官方说明
ftp_login官方说明
ftp_put官方说明。在这里我遇到个坑,就是第二个参数。你要填写的是文件在服务端,要存储的位置和名称。
FTP官方说明