本文目录一览:
- 1、PHP登录远程FTP空间代码
- 2、用PHP怎样实现把文件从一台服务器,移动到另一台FTP服务器呢?
- 3、如何使用php中ftp函数上传文件以及解决上传文件失败的方法
- 4、怎么通过PHP来支持FTP和HTTP上传
PHP登录远程FTP空间代码
给你的演示代码,有很多注释,你试试就知道了
?php
//配置数据
$ftp_server="";//FTP服务器
$ftp_user_name="";//FTP用户名
$ftp_user_pass="";//FTP用户密码
$ftp_up_dir="webspace/httpdocs/upload";//上传到哪个目录
$ftp_site_url="";//文件访问URL地址
$admin="admin";//管理员用户名
$adminpw="admin";//管理员密码
session_start();
//退出登录
if($_GET['action']=="logout"){
$_SESSION['pw']="";
}
//保存登录状态
if($_POST['pw']==$adminpw $_POST['user']==$admin){
$_SESSION['pw']=$adminpw;
$_SESSION['user']=$admin;
}
if($_SESSION['pw']!=$adminpw || $_SESSION['user']!=$admin)
{
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title请登录/title
/head
body
form action="?php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; ?" method="post"
label for="file"管理账户:/labelinput type="text" name="user" id="user" / br
label for="file"管理密码:/labelinput type="password" name="pw" id="pw" /
br /
input type="submit" name="submit" value="Login" /
/form
/body
/html
?
exit();
}
if(!$_FILES)
{
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titleFTP远程上传/title
/head
body
form action="?php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; ?" method="post"
enctype="multipart/form-data"
label for="file"文件名称:/label
input type="file" name="file" id="file" /
input type="submit" name="submit" value="上传" /
/form
pa href="?action=logout"退出/a/p
/body
/html
?php
}
else
{
$file = date('y-m-d_').rand(1,999999999).'_'.$_FILES["file"]["name"];
// 连接FTP
$conn = ftp_connect($ftp_server);
$login_result = ftp_login($conn, $ftp_user_name, $ftp_user_pass);
//改编目录
ftp_chdir($conn,$ftp_up_dir);
// 上传
if(ftp_put($conn, $file,$_FILES["file"]["tmp_name"] , FTP_ASCII)) {
$cue = "上传文件 $file 成功.br /文件访问地址: a href='$ftp_site_url$file' target='_blank'$ftp_site_url".$file."/a";
} else {
$cue = "上传文件 $file 时出错";
}
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title文件上传结果/title
/head
body
p?php echo $cue; ?/p
p
form action="?php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; ?" method="post"
enctype="multipart/form-data"
label for="file"文件名称:/label
input type="file" name="file" id="file" /
input type="submit" name="submit" value="上传" /
/form
/p
pa href="?action=logout"退出/a/p
/body
/html
?php
// 关闭FTP连接
ftp_close($conn);
}
?
用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函数上传文件以及解决上传文件失败的方法
一、 ftp上传图片参数说明。
1 $source:本机图片完整的路径。(/a/b/c.jpg)
2 $des :上传目标linux主机完整的路径。
3 $ftp_server:ftp地址
4 $ftp_user_name:ftp用户名
5 $ftp_user_pass: ftp密码
6 $port:端口
二、如何使用php中ftp函数上传文件的方法
例如:
本地地址为:/a/b/c.jpg
目标地址为:/d/a/b/c.jpg
2.1、linux主机上传linux主机。
01 function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 // 此步骤是在于上传目录与本机的目录不一致转换使用
04 $des = "/d" . $des;
05 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
06 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
07 ftp_pasv($conn_id, TRUE);
08 $ftp_folder = dirname($des);
09 $dir = explode("/", $ftp_folder);
10 $path = "";
11 for ($i = 0; $i count($dir); $i++) {
12 $path .= "/" . $dir[$i];
13 if (!ftp_chdir($conn_id, $path)) {
14 $result = ftp_mkdir($conn_id, $path);
15 }
16 }
17 if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {
18 return 1;
19 } else {
20 return 0;
21 }
22 ftp_close($conn_id);
23 }
2.2、windows主机上传linux主机。
01 function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 $des = "/d" . $des;
04 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
05 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
06 ftp_pasv($conn_id, TRUE);
07 $ftp_folder = dirname(str_ireplace('\\', '/', $des));
08 $dir = explode("/", $ftp_folder);
09 $path = "";
10 for ($i = 0; $i count($dir); $i++) {
11 $path .= "/" . $dir[$i];
12 if (!ftp_chdir($conn_id, $path)) {
13 $result = ftp_mkdir($conn_id, $path);
14 }
15 }
16 if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {
17 return 1;
18 } else {
19 return 0;
20 }
21 ftp_close($conn_id);
22 }
上面的两种使用php中ftp函数上传文件的方法基本可以满足正常的使用。
怎么通过PHP来支持FTP和HTTP上传
给你一些 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);