摘要 腾兴网为您分享:PHP文件上传实现上传到另一台服务器,作业盒子,自动刷宝,盈益云,小太阳等软件知识,以及手机mp3格式转换器,积木图纸,驾驶证分系统网站,finereader12,2017年日历表,网吧锁,lol透视,委屈表情,sheetworks,直播弹幕软件,韩游网,yy3.0,e润保,zalora,末世等软件it资讯,欢迎关注腾兴网。在php中我们如果要上传到另一台服务器就需要利用php一个ftp功能,在php中提供了 ftp_connect来连接服务器,然后把我们上传的数据传到远程服务器哦,下面我来给各位朋友介绍。 ftp_conn...

在php中我们如果要上传到另一台服务器就需要利用php一个ftp功能,在php中提供了 ftp_connect来连接服务器,然后把我们上传的数据传到远程服务器哦,下面我来给各位朋友介绍。

ftp_connect() 函数建立一个新的 FTP 连接。

若成功,则返回一个连接标识,否则返回 false。

语法

host 必需。规定要连接的 FTP 服务器。可以是域名或 IP 地址。

后面不应以斜线结尾,前面也不需要用 ftp:// 开头。

port 可选。规定 FTP 服务器的端口。

timeout 可选。规定该 FTP 服务器的超时时间。默认是 90 秒。

然后在台式机本地做了个测试:

 代码如下 复制代码
$ftp_server = "192.168.1.100";

$ftp_user_name = "laohu";

$ftp_user_pass = "123456";

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$file = 'test.txt';

$remote_file = '/test/a.txt';

// 注意:这里的"/test"指的是ftp根目录下的test文件夹,而非系统跟目录下的

test

 代码如下 复制代码

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

echo "文件移动成功";

} else {

echo "移动失败";

}

ftp_close($conn_id);

运行后:文件移动成功。

要的就是这个效果了,之后用台式机做程序服务器,上传附件时全用ftp方法上传至笔记本上,笔记本ip是105,相

应代码如下:

 代码如下 复制代码

if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {

$ftp_server = "192.168.1.105";

$ftp_user_name = "lesley";

$ftp_user_pass = "123456";

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$file = $_FILES['uploadfile']['tmp_name'];

$remote_file = '/test/'.$_FILES['uploadfile']['name'];

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

echo "文件:".$_FILES['uploadfile']['name']."上传成功";

} else {

echo "上传失败";

}

ftp_close($conn_id);

}

对应的前台页面代码:

 代码如下 复制代码

运行后确实成功。

下面看一个ftp文件上传类

 代码如下 复制代码

/**

* desc:FTP类

* link:www.jquerycn.cn

* date:2013/02/24

*/

class ftp

{

public $off;  // 返回操作状态(成功/失败)

public $conn_id;  // FTP连接

/**

* 方法:FTP连接

* @FTP_HOST -- FTP主机

* @FTP_PORT -- 端口

* @FTP_USER -- 用户名

* @FTP_PASS -- 密码

*/

function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)

{

$this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");

@ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");

@ftp_pasv($this->conn_id,1); // 打开被动模拟

}

/**

* 方法:上传文件

* @path-- 本地路径

* @newpath -- 上传路径

* @type-- 若目标目录不存在则新建

*/

function up_file($path,$newpath,$type=true)

{

if($type) $this->dir_mkdirs($newpath);

$this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);

if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";

}

/**

* 方法:移动文件

* @path-- 原路径

* @newpath -- 新路径

* @type-- 若目标目录不存在则新建

*/

function move_file($path,$newpath,$type=true)

{

if($type) $this->dir_mkdirs($newpath);

$this->off = @ftp_rename($this->conn_id,$path,$newpath);

if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";

}

/**

* 方法:复制文件

* 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径

* @path-- 原路径

* @newpath -- 新路径

* @type-- 若目标目录不存在则新建

*/

function copy_file($path,$newpath,$type=true)

{

$downpath = "c:/tmp.dat";

$this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载

if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";

$this->up_file($downpath,$newpath,$type);

}

/**

* 方法:删除文件

* @path -- 路径

*/

function del_file($path)

{

$this->off = @ftp_delete($this->conn_id,$path);

if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";

}

/**

* 方法:生成目录

* @path -- 路径

*/

function dir_mkdirs($path)

{

$path_arr  = explode('/',$path);  // 取目录数组

$file_name = array_pop($path_arr);// 弹出文件名

$path_br  = count($path_arr);// 取层数

foreach($path_arr as $val)// 创建目录

{

if(@ftp_chdir($this->conn_id,$val) == FALSE)

{

$tmp = @ftp_mkdir($this->conn_id,$val);

if($tmp == FALSE)

{

echo "目录创建失败,请检查权限及路径是否正确!";

exit;

}

@ftp_chdir($this->conn_id,$val);

}

}

for($i=1;$i<=$path_br;$i)  // 回退到根

{

@ftp_cdup($this->conn_id);

}

}

/**

* 方法:关闭FTP连接

*/

function close()

{

@ftp_close($this->conn_id);

}

}

// class class_ftp end

?>

调用代码

 代码如下 复制代码

/***

* desc:调用示例

* link:www.jquerycn.cn

* date:2013/2/24

*/

$ftp = new ftp('192.168.0.249',21,'hlj','123456');  // 打开FTP连接

$ftp->up_file('aa.wav','test/13548957217/bb.wav'); // 上传文件

//$ftp->move_file('aaa/aaa.php','aaa.php');// 移动文件

//$ftp->copy_file('aaa.php','aaa/aaa.php');// 复制文件

//$ftp->del_file('aaa.php');   // 删除文件

$ftp->close(); // 关闭FTP连接

?>

需要注意,在用ftp_put方法时,第四个参数传送模式,需要用FTP_BINARY(二进制模式),用FTP_ASCII(文本模式)

时,图片能上传但无法显示,其他文件重命名、中文乱码解决、上传权限控制等,就不在此提及了。

相关推荐

php上传文件到三方,文件上传服务器_PHP文件上传实现上传到另一台服务器相关推荐

  1. 仅通过SQL备份文件将MOSS服务器场及所有网站数据迁移到新的一台服务器上

    背景: 这是一次完整到服务器迁移项目.现有MOSS的物理环境是两台服务器,一台后台的SQL服务器,一台前台的Web服务器.SQL服务器为Win03+SQL05,Web服务器为Win03+MOSS07. ...

  2. 分卷压缩并解压 (线上服务器如何把很大的数据拷贝到另外一台服务器上)

    用法:split [选项]... [输入 [前缀]] 选项: -a, --suffix-length=N 指定后缀长度为N (默认为2) -b, --bytes=大小 指定每个输出文件的字节大小 -C ...

  3. 向腾讯云windows服务器传输文件,如何上传本地文件到腾讯云Windows服务器上?

    在做运维的过程中经常遇见客户问,如何上传本地数据到Windows云服务器上. 相对Linux云服务器,针对新人朋友Windows云服务器是可视化的更加容易理解.云服务器就是我们租用了腾讯云机房的一台服 ...

  4. nginx负载均衡两台服务器文件,Nginx之负载均衡 :两台服务器均衡(填坑)

    第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...

  5. 在一台服务器上搭多个网站的解决方案

    以前一直困惑于80端口就一个,如何才能在一台服务器上布署多个网站呢?最近因为公司服务器需要实现这个需求,才去认真的研究其中的原理与布署方案,本文总要记录winodws服务器下apache与iis的配置 ...

  6. 上云的先行军,QQ 率先完成了20万台服务器全量上云,是怎么做到的?

    作者 | 田晓旭 截止到目前,QQ 所有的业务都已经迁移到了腾讯云上. 2019 年 1 月 4 日,腾讯技术委员会正式成立,同时下设了两个项目组"开源协同"和"自研上云 ...

  7. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  8. 如何限制上传服务器的文件容量,如何通过配置php文件限制上传文件的大小

    在网站开发的过程中,为了确保能够充分利用服务器的空间,在开发上传功能时,必须对上传文件的大小进行控制.那么我们如何进行对上传文件的大小进行控制呢? 控制文件的大小可以从两个方面入手: 第一个是在PHP ...

  9. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

最新文章

  1. 人工智能进军餐饮:AI调酒,越喝越有
  2. 范成法加工matlab_光学非球面技术原理与加工技术
  3. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同
  4. Google Android开发精华教程
  5. linux 文件服务,Linux操作系统之文件服务(ftp、nfs)
  6. js检测字符串方法大全
  7. android学习笔记九——RatingBar
  8. Asp.NetCoreWebApi入门 - 从零开始新建api项目
  9. 安装php时,make步骤报错make: *** [sapi/fpm/php-fpm] Error 1
  10. dbsync for oracle ms sql,DBSync for Firebird and MSSQL
  11. pptx给幻灯片添加内容
  12. 【安卓笔记】抽屉式布局----DrawerLayout
  13. Mybatis 向指定表中批量插入数据
  14. Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  15. 什么是NVMe驱动器,您应该购买一个吗?
  16. Oracle gsd服务是什么,oracle RAC GSD简介
  17. 基于Neo4j计算网络节点中心性(Closeness、betweenness Centrality)
  18. 7-59 二元一次方程的解
  19. Explain执行器名词解释
  20. 云服务器1M带宽表示什么意思,购买服务器时如何选择服务器带宽?

热门文章

  1. 致在大学中感到迷茫或即将进入大学的你(转)
  2. 人原ADSC细胞 正常人脂肪来源干细胞 Adipose-derived stem cells报告
  3. matlab智能算法超级学习手册 pdf,MATLAB智能算法超级学习手册
  4. 1213 The Clocks
  5. banner.txt的图案
  6. 一文详解大数据平台架构
  7. php案例:字符串压缩解压
  8. java计算机毕业设计社区团购系统源码+系统+数据库+lw文档
  9. c语言写51单片机八路抢答器,51单片机八路抢答器的程序问题
  10. 富文本编辑器 vue-quill-editor 实现 mention 提醒功能