第一步:建立一个新的 FTP 连接。
    ftp_connect(host,port,timeout);
    host必需,规定要连接的 FTP 服务器,可以是域名或 IP 地址,后面不应以斜线结尾,前面也不需要用 ftp:// 开头。
    port可选,规定 FTP 服务器的端口。
    timeout可选,规定该 FTP 服务器的超时时间,默认是 90 秒。
    返回值:若成功,则返回一个连接标识,否则返回 false。

第二步:登陆FTP。
    ftp_login(ftp_connection,username,password);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    username必需,规定用于登录的用户名。
    password必需,规定用于登录的密码。
    返回值:若成功则返回 true,失败则返回 false 并发出一个警告。

第三步:改变 FTP 服务器上的当前目录或在 FTP 服务器上建立新目录。
    (1)改变 FTP 服务器上的当前目录。
    ftp_chdir(ftp_connection,directory);
    tp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    directory必需,规定要切换到的目录。
    返回值:若成功,则返回 true,否则返回 false,如果切换目录失败,PHP 还会发出一条警告。
    (2)在 FTP 服务器上建立新目录。
    ftp_mkdir(ftp_connection,dir);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    dir必需,规定要创建的目录的名称。
    返回值:若成功,则返回 true,否则返回 false。

第四步:查看FTP当前目录。
    ftp_pwd(ftp_connection);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    返回值:返回FTP的当前目录。

第五步:把文件上传到服务器。
    ftp_put(ftp_connection,remote,local,mode,resume);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    remote必需,上传到服务器上的文件名。
    local,必需,规定要上传的本地文件的路径。
    mode必需,规定传输模式,可能的值有:FTP_ASCII、FTP_BINARY。
    resume必需,规定在本地文件中的何处开始拷贝,默认是0。
    返回值:若成功则返回 true,失败则返回 false。

第六步:关闭 FTP 连接。
    ftp_close(ftp_connection);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。

实例代码:
<?php
    $ftp_connection = ftp_connect('xxx.com',21,1000);
    ftp_login($ftp_connection, 'xxxName', 'xxxPWD');
    ftp_chdir($ftp_connection, '/blogs/test');
    //echo ftp_pwd($ftp_connection);
    $r = ftp_put($ftp_connection, 'romote.txt', './local.txt', FTP_BINARY);
    var_dump($r);
    ftp_close($ftp_connection);
?>

FTP相关的其他函数
(1)删除 FTP 服务器上的一个文件。
    ftp_delete(ftp_connection,path);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    path必需,规定要删除的文件的路径。
    返回值:若成功,则返回 true,否则返回 false。
(2)获取文件的最后修改时间。
    ftp_login(ftp_connection,file);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    file必需,规定要检查的文件。
    返回值:如:int 1338845458。
    注释:并非所有 FTP 服务器都支持该函数,该函数不适用于检查目录。
(3)删除目录。
    ftp_rmdir(ftp_connection,dir);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    dir必需,规定要删除的目录。
    返回值:若成功,则返回 true,否则返回 false。
    注释:删除的目录下不能包含子目录和文件。
    
(4)设置 FTP 服务器上指定文件的权限
    ftp_chmod(ftp_connection,mode,file);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    mode必需,规定新的权限。
    file必需,规定要修改权限的文件的名称。
    返回值:若成功,返回设置的权限值,否则返回false。

(5)获取指定目录的文件列表。
    ftp_nlist(ftp_connection,dir);
    ftp_connection必需,规定要使用的 FTP 连接(FTP 连接的标识符)。
    dir必需,规定要检查的目录,使用 '.' 来获得当前目录。
    返回值:若成功,则返回给定目录下的文件名组成的数组,否则返回 false。

 
 举例:

<?php
/**
* ftp上传下载文件
* edit www.jbxue.com
*/

$ftp_server='www.jbxue.com';//服务器
$ftp_user_name='jbxue.com';//用户名
$ftp_user_pass='password';//密码
$ftp_port='21';//端口
$ftp_put_dir='data/photo/thumb/data2';//上传目录

$ftp_conn_id = ftp_connect($ftp_server,$ftp_port);
$ftp_login_result = ftp_login($ftp_conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$ftp_conn_id) || (!$ftp_login_result)) {
 echo "连接到ftp服务器失败";
 exit;
} else {

ftp_pasv ($ftp_conn_id,true); //是否被动模式
 
 ftp_chdir($ftp_conn_id, $ftp_put_dir);
 $ftp_upload = ftp_put($ftp_conn_id, '3c264461abdf49de2ddaabc3426ceb65.jpg', 'data\jbxue.com\3c264461abdf49de2ddaabc3426ceb65.jpg', FTP_BINARY);
 //var_dump($ftp_upload);//看看写入成功否?
 ftp_close($ftp_conn_id); //断开
}
?>

 
 

PHP FTP上传文件的更多相关文章

  1. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  2. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  3. FTP上传文件到服务器

    一.初始化上传控件. 1.我们这里用dropzone.js作为上传控件,下载地址http://www.dropzonejs.com/ 2.这里我们使用一个div元素作为dropzone载体. < ...

  4. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  5. FTP上传文件提示550错误原因分析。

    今天测试FTP上传文件功能,同样的代码从自己的Demo移到正式的代码中,不能实现功能,并报 Stream rs = ftp.GetRequestStream()提示远程服务器返回错误: (550) 文 ...

  6. FTP 上传文件

    有时候需要通过FTP同步数据文件,除了比较稳定的IDE之外,我们程序员还可以根据实际的业务需求来开发具体的工具,具体的开发过程就不细说了,这里了解一下通过C#实现FTP上传文件到指定的地址. /// ...

  7. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  8. C# FTP上传文件至服务器代码

    C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo ...

  9. Java ftp上传文件方法效率对比

    Java ftp上传文件方法效率对比 一.功能简介: txt文件采用ftp方式从windows传输到Linux系统: 二.ftp实现方法 (1)方法一:采用二进制流传输,设置缓冲区,速度快,50M的t ...

  10. Ftp上传文件

    package net.util.common; import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

随机推荐

  1. Masonry 控件详解

    1.   Masonry的属性 @property (nonatomic,strong,readonly)MASConstraint *left; //左侧 @property(nonatomic,s ...

  2. ios - cordova 简介

    Cordova 是一个可以让 JS 与原生代码(包括 Android 的 java,iOS 的 Objective-C 等)互相通信的一个库,并且提供了一系列的插件类,比如 JS 直接操作本地数据库的 ...

  3. Mysql的权限管理

    权限管理 创建用户 语法:     create user '用户名'[@'主机名'][identified by '密码']; 示例: 说明:     用户名必须使用引号     '主机名'可以是以 ...

  4. SpringInAction读书笔记--第4章面向切面

    1.什么是面向切面编程 在软件开发中,散布于应用中多处的功能被称为横切关注点,这些横切关注点从概念上是与应用的业务逻辑相分离的,但往往分直接嵌入到应用的业务逻辑之中,把这些横切关注点与业务逻辑相分离正 ...

  5. [Guava官方文档翻译] 4. 使用Guava Ordering排序 (Ordering Explained)

    本文地址:http://www.cnblogs.com/hamhog/p/3537233.html 示例 assertTrue(byLengthOrdering.reverse().isOrdered ...

  6. 在Windows下用MingW 4.5.2编译FFmpeg

    1.下载FFmpeg(http://ffmpeg.org/download.html),解压. 2.进入MingW Shell,cd F:/Qt/ffmpeg(假定解压到F:/Qt/ffmpeg) 3 ...

  7. 简单模拟java动态动态代理机制的底层实现原理

    在网上学习了马士兵老师的设计模式视屏,过程中也有认真的做相应的笔记.在次分享我的一些成果,方便大家的进一步学习. 1.接口  } 2.被代理的对象 public class Tank implemen ...

  8. Java遍历所有网卡打印对应IP

    import java.util.Enumeration; import java.net.*; public class Test { /** * @param args */ public sta ...

  9. python特性property

    通常,访问类和实例属性的时候,将返回所存储的相关值,也就是直接和类(实例的)的__dict__打交道.若果要规范这些访问和设值方式的话, 一种方法是数据描述符,另一种就是python内置的数据描述符协 ...

  10. 学习hash_map从而了解如何写stl里面的hash函数和equal或者compare函数

    ---恢复内容开始--- 看到同事用unordered_map了所以找个帖子学习学习 http://blog.sina.com.cn/s/blog_4c98b9600100audq.html (一)为 ...