phpftp获取文件
❶ 用php怎样实现把文件从一台服务器,移动到另一台ftp服务器呢
<?php
// 链接ftp
$conn = ftp_connect('地址', '端口', '超时时间');
// 登录
ftp_login($conn, '账号', '密码');
$here = ftp_pwd($conn);
//获取服务器端系统信息ftp_systype()
$server_os = ftp_systype($conn);
//被动模式(PASV)的开关,打开或关闭PASV(1表示开)
ftp_pasv($conn, 1);
//进入目录中用ftp_chdir()函数,它接受一个目录名作为参数。
ftp_chdir($conn, "public_html");
//ftp_mkdir($conn, "test");
ftp_put($conn, "服务器显示的名称", "要上传的文件名称", FTP_ASCII);
ftp_quit($conn);
❷ 如何使用php中ftp函数上传文件以及解决上传文件失败的方法
因为系统重构实现均衡负载,网站程序与文件服务器不在一台机子上。于是,程序在上传文件的同时就要将文件上传到文件服务器上。
这里涉及到windows主机上传到linux主机,linux主机上传到linux主机。这两个之间呢,只是稍微的有点区别,因为windows的路径可以兼容linux路径,但是linux的路径不兼容windows主机'\\'的写法。所以,在写路径的时候稍加注意即可。
下面,就列举上面两种情况php中使用ftp函数上传文件的具体实现代码。
一、 ftp上传图片参数说明。
$source:本机图片完整的路径。(/a/b/c.jpg)
$des :上传目标linux主机完整的路径。
$ftp_server:ftp地址
$ftp_user_name:ftp用户名
$ftp_user_pass: ftp密码
$port:端口
二、如何使用php中ftp函数上传文件的方法
例如:
本地地址为:/a/b/c.jpg
目标地址为:/d/a/b/c.jpg
2.1、linux主机上传linux主机。
function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
{
// 此步骤是在于上传目录与本机的目录不一致转换使用
$des = "/d" . $des;
$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, TRUE);
$ftp_folder = dirname($des);
$dir = explode("/", $ftp_folder);
$path = "";
for ($i = 0; $i < count($dir); $i++) {
$path .= "/" . $dir[$i];
if (!ftp_chdir($conn_id, $path)) {
$result = ftp_mkdir($conn_id, $path);
}
}
if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {
return 1;
} else {
return 0;
}
ftp_close($conn_id);
}
2、windows主机上传linux主机。
function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
{
$des = "/d" . $des;
$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, TRUE);
$ftp_folder = dirname(str_ireplace('\\', '/', $des));
$dir = explode("/", $ftp_folder);
$path = "";
for ($i = 0; $i < count($dir); $i++) {
$path .= "/" . $dir[$i];
if (!ftp_chdir($conn_id, $path)) {
$result = ftp_mkdir($conn_id, $path);
}
}
if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {
return 1;
} else {
return 0;
}
ftp_close($conn_id);
}
上面的两种使用php中ftp函数上传文件的方法基本可以满足正常的使用。
❸ php用ftp_nlist获取到列表后怎么判断是一个文件还是一个目录
用ftp_rawlist,返回结果会告诉你,是文件还是文件夹,非要用ftp_nlist的话,就循环判断返回值里面的ftp_size,如果是文件夹,会返回-1,但是效率没有ftp_rawlist来得高
❹ ftp怎么设置权限可以让php无法读取其他目录的文
设置php的执行用户权限为只限制读写网站根目录下的文件及文件夹,比如www文件夹是网站根目录,php-fpm用户是执行用户,那么设置php-fpm只能读写www文件夹里面的文件。这样其他的www以外的目录这个用户就没有权限访问了。
❺ 用php 中ftp函数抓取别人服务器上的文件内容怎么做啊
ftp_get -- 从 FTP 服务器上下载一个文件
说明
bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])
ftp_get() 函数用来下载 FTP 服务器上由 remote_file 参数指定的文件,并保存到由参数 local_file 指定的本地文件。传送码槐模式参数 mode 只能为 (文本模式) FTP_ASCII 或 (二进制模式) FTP_BINARY 中的其中一个。
注: 参数 resumepos 仅在适用于 PHP 4.3.0 以上版本.
如果成功则返回 TRUE,失败则返回灶知 FALSE。
ftp_get() 例子
<?php
// define some variables
$local_file = 'local.zip';
$server_file = 'server.zip';
// connect to the FTP server
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// try to download
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
?>
不知道你要的是迟辩友不是这个函数。