使用php上传文件至另一台服务器

使用php上传文件至另一台服务器

说明

最近,我在新浪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官方说明

猜你喜欢

转载自blog.csdn.net/weixin_39753511/article/details/103027175